js獲取瀏覽器高度 窗口高度 元素尺寸 偏移屬性的方法
如下所示:
screen.width screen.height screen.availHeight //獲取去除狀態(tài)欄后的屏幕高度 screen.availWidth //獲取去除狀態(tài)欄后的屏幕高度
一、通過(guò)瀏覽器獲得屏幕的尺寸
二、獲取瀏覽器窗口內(nèi)容的尺寸
//高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //寬度 window.innerWidth || document.documentElement.clientWidth || document.body.clientWidht / * * window.innerHeight FF/CH 支持,獲取窗口尺寸。 * document.documentElement.clientHeight IE/CH支持 * document.body.client 通過(guò)body元素獲取內(nèi)容的尺寸 * /
三、滾動(dòng)條支持的差異性
不進(jìn)行任何滾動(dòng)條更改的頁(yè)面,F(xiàn)irefox/IE 默認(rèn)認(rèn)為HTML元素具有滾動(dòng)條屬性。而body不具有。
但Chrome 則認(rèn)為body是具有滾動(dòng)條屬性的。
因此兼容性的寫(xiě)法是:
document.documentElement.scrollTop || document.body.scrollTop
四、獲取元素的尺寸
elemnt.offsetWidth elemnt.offsetHeight // 僅IE5不支持,放心使用吧
說(shuō)明圖:
* offsetWidth 可以獲取元素的高度尺寸,包括:width + padding[left,right] + border[left,right]
* offsetHeight 可以獲取元素的寬度尺寸,包括:height + padding[top,bottom] + bottom[top,bottom]
五、元素的偏移屬性
element.offsetTop //獲取元素與其偏移參考父元素頂部的間隔距離 element.offsetLeft //獲取元素與其偏移參考父元素左邊的間隔距離 element.offsetParent //獲取當(dāng)前元素的參考父元素
*offsetTop 可以獲取元素距其上一級(jí)的偏移參考父元素頂部的距離。包括:margin[top] + top
*offsetLeft 可以獲取元素距其上一級(jí)的偏移參考父元素左邊的距離。包括:margin[left] + left
*注意的是offsetParent在IE6/7,與IE8/FF/CH中存在兼容性問(wèn)題:
在FF/Chrome/IE8+ :
如果當(dāng)前元素有定位,則偏移參考父元素是其上一級(jí)的最近的那個(gè)定位元素。
如果當(dāng)前元素沒(méi)有定位,則默認(rèn)以body為最終的參考父元素。
在IE6/7:
不論有沒(méi)有定位,其偏移參考父元素都是其上一級(jí)的父元素。
總的來(lái)說(shuō):
不論是FF/Chrome還是IE,最終的參考父元素都是body元素, 因此兼容的方法就是獲取當(dāng)前元素到body元素的偏移位置值。
兼容性寫(xiě)法
function getOffestValue(elem){ var Far = null; var topValue = elem.offsetTop; var leftValue = elem.offsetLeft; var offsetFar = elem.offsetParent; while(offsetFar){ alert(offsetFar.tagName) topValue += offsetFar.offsetTop; leftValue += offsetFar.offsetLeft; Far = offsetFar; offsetFar = offsetFar.offsetParent; } return {'top':topValue,'left':leftValue,'Far':Far} } /* * top 當(dāng)前元素距離body元素頂部的距離。 * left 當(dāng)前元素距離body元素左側(cè)的距離。 * Far 返回最終的參考父元素。 */
以上這篇js獲取瀏覽器高度 窗口高度 元素尺寸 偏移屬性的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
NodeJS的模塊寫(xiě)法入門(mén)(實(shí)例代碼)
前面提到了NodeJS的命令行和Web版之“Hello,World”。命令行是直接執(zhí)行hello.js文件,Web版的需要require http模塊。http模塊是NodeJS自身提供的2012-03-03uni-app動(dòng)態(tài)修改導(dǎo)航欄標(biāo)題簡(jiǎn)單步驟
uniapp作為一款開(kāi)源軟件,可以做到一端多用,不過(guò)也有局限,在開(kāi)發(fā)中有時(shí)候需要?jiǎng)討B(tài)的去修改標(biāo)題,下面這篇文章主要給大家介紹了關(guān)于uni-app動(dòng)態(tài)修改導(dǎo)航欄標(biāo)題的相關(guān)資料,需要的朋友可以參考下2023-06-06Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式.這篇文章主要介紹了Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))的相關(guān)資料,需要的朋友可以參考下2016-10-10JavaScript 實(shí)現(xiàn)同時(shí)選取多個(gè)時(shí)間段的方法
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)同時(shí)選取多個(gè)時(shí)間段的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10js控制元素顯示在屏幕固定位置及監(jiān)聽(tīng)屏幕高度變化的方法
這篇文章主要介紹了js控制元素顯示在屏幕固定位置及監(jiān)聽(tīng)屏幕高度變化的方法,涉及javascript針對(duì)頁(yè)面元素及樣式屬性的相關(guān)操作技巧,需要的朋友可以參考下2015-08-08JS實(shí)現(xiàn)在狀態(tài)欄顯示打字效果完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)在狀態(tài)欄顯示打字效果的方法,涉及JavaScript中字符遍歷結(jié)合時(shí)間函數(shù)對(duì)狀態(tài)欄顯示進(jìn)行操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11