1. 程式人生 > >js獲取瀏覽器基本資訊:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。

js獲取瀏覽器基本資訊:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。

網頁可見區域寬:document.body.clientWidth
網頁可見區域高:document.body.clientHeight
網頁可見區域寬:document.body.offsetWidth (包括邊線的寬)
網頁可見區域高:document.body.offsetHeight (包括邊線的寬)
網頁正文全文寬:document.body.scrollWidth
網頁正文全文高:document.body.scrollHeight
網頁被捲去的高:document.body.scrollTop
網頁被捲去的左:document.body.scrollLeft
網頁正文部分上:window.screenTop
網頁正文部分左:window.screenLeft
螢幕解析度的高:window.screen.height
螢幕解析度的寬:window.screen.width
螢幕可用工作區高度:window.screen.availHeight
螢幕可用工作區寬度:window.screen.availWidth

HTML精確定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 獲取物件的滾動高度。
scrollLeft:設定或獲取位於物件左邊界和視窗中目前可見內容的最左端之間的距離
scrollTop:設定或獲取位於物件最頂端和視窗中可見內容的最頂端之間的距離
scrollWidth:獲取物件的滾動寬度
offsetHeight:獲取物件相對於版面或由父座標 offsetParent 屬性指定的父座標的高度
offsetLeft:獲取物件相對於版面或由 offsetParent 屬性指定的父座標的計算左側位置
offsetTop:獲取物件相對於版面或由 offsetTop 屬性指定的父座標的計算頂端位置
event.clientX 相對文件的水平座標
event.clientY 相對文件的垂直座標
event.offsetX 相對容器的水平座標
event.offsetY 相對容器的垂直座標
document.documentElement.scrollTop 垂直方向滾動的值
event.clientX+document.documentElement.scrollTop 相對文件的水平座標+垂直方向滾動的量


IE,FireFox 差異如下:

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5:
clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin屬性,與clientWidth、offsetWidth、clientHeight、offsetHeight均無關)

網頁可見區域寬: document.body.clientWidth
網頁可見區域高: document.body.clientHeight
網頁可見區域寬: document.body.offsetWidth (包括邊線的寬)
網頁可見區域高: document.body.offsetHeight (包括邊線的高)
網頁正文全文寬: document.body.scrollWidth
網頁正文全文高: document.body.scrollHeight
網頁被捲去的高: document.body.scrollTop
網頁被捲去的左: document.body.scrollLeft
網頁正文部分上: window.screenTop
網頁正文部分左: window.screenLeft
螢幕解析度的高: window.screen.height
螢幕解析度的寬: window.screen.width
螢幕可用工作區高度: window.screen.availHeight
螢幕可用工作區寬度: window.screen.availWidth

-------------------

技術要點
本節程式碼主要使用了Document物件關於視窗的一些屬性,這些屬性的主要功能和用法如下。

要得到視窗的尺寸,對於不同的瀏覽器,需要使用不同的屬性和方法:若要檢測視窗的真實尺寸,在Netscape下需要使用Window的屬性;在 IE下需要深入Document內部對body進行檢測;在DOM環境下,若要得到視窗的尺寸,需要注意根元素的尺寸,而不是元素。

Window物件的innerWidth屬性包含當前視窗的內部寬度。Window物件的innerHeight屬性包含當前視窗的內部高度。

Document物件的body屬性對應HTML文件的標籤。Document物件的documentElement屬性則表示HTML文件的根節點。

document.body.clientHeight表示HTML文件所在視窗的當前高度。document.body. clientWidth表示HTML文件所在視窗的當前寬度。

關於獲取各種瀏覽器可見視窗大小的一點點研究。

在我本地測試當中:在IE、FireFox、Opera下都可以使用

document.body.clientWidth

document.body.clientHeight即可獲得,很簡單,很方便。

而在公司專案當中:Opera仍然使用

document.body.clientWidth

document.body.clientHeight

可是IE和FireFox則使用

document.documentElement.clientWidth

document.documentElement.clientHeight

原來是W3C的標準在作怪啊http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在頁面中新增這行標記的話

在IE中:document.body.clientWidth ==> BODY物件寬度

document.body.clientHeight ==> BODY物件高度

document.documentElement.clientWidth ==> 可見區域寬度

document.documentElement.clientHeight ==> 可見區域高度

在FireFox中:document.body.clientWidth ==> BODY物件寬度

document.body.clientHeight ==> BODY物件高度

document.documentElement.clientWidth ==> 可見區域寬度

document.documentElement.clientHeight ==> 可見區域高度?

在Opera中: document.body.clientWidth ==> 可見區域寬度

document.body.clientHeight ==> 可見區域高度

document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)

而如果沒有定義W3C的標準,

則IE為:document.documentElement.clientWidth ==> 0

document.documentElement.clientHeight ==> 0

FireFox為:document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)

document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)

Opera為:document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)

document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)

真是一件麻煩事情,其實就開發來看,寧可少一些物件和方法,不使用最新的標準要方便許多啊。