js中的如何定位固定層的位置
更新時(shí)間:2014年06月15日 16:26:18 投稿:whsnow
這篇文章主要介紹了js中的如何定位固定層的位置,需要的朋友可以參考下
需要獲取一些HTML的對(duì)象的坐標(biāo)來(lái)更靈活的設(shè)置目標(biāo)層的坐標(biāo),這里可以通過(guò)用到document.body.scrollTop等屬性,但是這些屬性在xhtml的標(biāo)準(zhǔn)網(wǎng)頁(yè)中或更簡(jiǎn)單的說(shuō)就是帶<!DOCTYPE...>的標(biāo)簽中得到的值是0;如果不要此標(biāo)簽則一切正常,那么在xhtml中如何獲取body的坐標(biāo)呢?當(dāng)然有辦法了,我們使用document.documentElement來(lái)取代document.body例如可以這樣寫:
var top=document.documentElement.scrollTop ||document.body.scroolTop;
js中的||是個(gè)好東西 ,不但可以用在if的條件語(yǔ)句中,而且還可以用在變量的賦值上,上例可以寫成如下格式:
var top=document.documentElement.scrollTop ?document.documentElement.scrollTop : document.body.scrollTop;
這樣寫可以有很好的兼容性。還要注意的一點(diǎn)是:如果不聲明document.documentElement.scrollTop的值反而會(huì)顯示0。

說(shuō)明要想獲取當(dāng)前頁(yè)面上滾動(dòng)條坐標(biāo)的縱坐標(biāo)位置:用
document.documentElement.scrollTop而不是用
document.body.scrollTop;
document.documentElement獲取的是html標(biāo)簽,
document.body獲取的是body標(biāo)簽;
在標(biāo)準(zhǔn)w3c下,document.body.scrollTop恒為0,需要用document.documentElement.scrollTop來(lái)代替;
如果我們要定位鼠標(biāo)相對(duì)于頁(yè)面的絕度位置時(shí),會(huì)在搜索引擎中得到的大多會(huì)讓你用
event.clientX+document.body.scrollLeft ,event.clientY+document.body.scrollTop;
如果發(fā)現(xiàn)鼠標(biāo)偏離了你的想象,一點(diǎn)都奇怪,因?yàn)镮E5.5之后就不在支持document.body.scrollX對(duì)象了
所以我們要加上一句;
if (document.body && document.body.scrollTop &&document.body.scrollLeft)
{
top=document.body.scrollTop;
left=document.body.scrollleft;
}
if (document.documentElement && document.documentElement.scrollTop&& document.documentElement.scrollLeft)
{
top=document.documentElement.scrollTop;
left=document.documentElement.scrollLeft;
}
下面介紹一些參數(shù)的用法:
網(wǎng)頁(yè)的可見(jiàn)區(qū)域?qū)挾龋篸ocument.body.clientWidth;
網(wǎng)頁(yè)的可見(jiàn)區(qū)域高度:document.body.clientHeight;
網(wǎng)頁(yè)可見(jiàn)區(qū)域?qū)?document.body.offsetWidth;(包括邊線的寬);
網(wǎng)頁(yè)可見(jiàn)區(qū)域高:document.body.offsetHeight;(包括邊線的寬);
網(wǎng)頁(yè)正文全文寬:document.body.scrollWidth;
網(wǎng)頁(yè)正文全文高:document.body.scrollHeight;
網(wǎng)頁(yè)被卷去的高:document.body.scrollTop;
網(wǎng)頁(yè)被卷去的左:document.body.scrollLeft;
網(wǎng)頁(yè)正文部分上:windows.screenTop;
網(wǎng)頁(yè)正文部分左:windows.screenLeft;
屏幕分辨率的高:windows.screen.height;
屏幕分辨率的寬:windows.screen.widht;
屏幕可用工作區(qū)高度:windows.screen.availHeight;
屏幕可用工作區(qū)寬度:windows.screen.availWidth;
獲取對(duì)象的滾動(dòng)高度:scrollHeight;
設(shè)置或獲取位于對(duì)象左邊界和窗口中目前可見(jiàn)內(nèi)容的最左端之間的距離 :scrollLeft;
設(shè)置或獲取位于對(duì)象最頂端和窗口中可見(jiàn)內(nèi)容的最頂端之間的距離 :scrollTop;
獲取對(duì)象的滾動(dòng)寬度:scrollWidth;
獲取對(duì)象相對(duì)于版面或由父坐標(biāo):offsetParent 屬性指定的父坐標(biāo)的高度 :offsetHeight;
獲取對(duì)象相對(duì)于版面或由offsetParent 屬性指定的父坐標(biāo)的計(jì)算左側(cè)位置 :offsetLeft;
獲取對(duì)象相對(duì)于版面或由offsetTop 屬性指定的父坐標(biāo)的計(jì)算頂端位置:offsetTop;
event.clientX:相對(duì)于文檔的水平坐標(biāo);
event.clientY:相對(duì)于文檔的垂直坐標(biāo);
event.offsetX:相對(duì)于容器的水平坐標(biāo);
event.offsetY:相對(duì)于容器的垂直坐標(biāo);
document.documentElement.scrollTop:設(shè)置滾動(dòng)的垂直高度
event.clientX + document.documentElement.scrollTop:相對(duì)文檔的水平位置+垂直方向的滾動(dòng)量;
復(fù)制代碼 代碼如下:
var top=document.documentElement.scrollTop ||document.body.scroolTop;
js中的||是個(gè)好東西 ,不但可以用在if的條件語(yǔ)句中,而且還可以用在變量的賦值上,上例可以寫成如下格式:
復(fù)制代碼 代碼如下:
var top=document.documentElement.scrollTop ?document.documentElement.scrollTop : document.body.scrollTop;
這樣寫可以有很好的兼容性。還要注意的一點(diǎn)是:如果不聲明document.documentElement.scrollTop的值反而會(huì)顯示0。

說(shuō)明要想獲取當(dāng)前頁(yè)面上滾動(dòng)條坐標(biāo)的縱坐標(biāo)位置:用
document.documentElement.scrollTop而不是用
document.body.scrollTop;
document.documentElement獲取的是html標(biāo)簽,
document.body獲取的是body標(biāo)簽;
在標(biāo)準(zhǔn)w3c下,document.body.scrollTop恒為0,需要用document.documentElement.scrollTop來(lái)代替;
如果我們要定位鼠標(biāo)相對(duì)于頁(yè)面的絕度位置時(shí),會(huì)在搜索引擎中得到的大多會(huì)讓你用
event.clientX+document.body.scrollLeft ,event.clientY+document.body.scrollTop;
如果發(fā)現(xiàn)鼠標(biāo)偏離了你的想象,一點(diǎn)都奇怪,因?yàn)镮E5.5之后就不在支持document.body.scrollX對(duì)象了
所以我們要加上一句;
復(fù)制代碼 代碼如下:
if (document.body && document.body.scrollTop &&document.body.scrollLeft)
{
top=document.body.scrollTop;
left=document.body.scrollleft;
}
if (document.documentElement && document.documentElement.scrollTop&& document.documentElement.scrollLeft)
{
top=document.documentElement.scrollTop;
left=document.documentElement.scrollLeft;
}
下面介紹一些參數(shù)的用法:
網(wǎng)頁(yè)的可見(jiàn)區(qū)域?qū)挾龋篸ocument.body.clientWidth;
網(wǎng)頁(yè)的可見(jiàn)區(qū)域高度:document.body.clientHeight;
網(wǎng)頁(yè)可見(jiàn)區(qū)域?qū)?document.body.offsetWidth;(包括邊線的寬);
網(wǎng)頁(yè)可見(jiàn)區(qū)域高:document.body.offsetHeight;(包括邊線的寬);
網(wǎng)頁(yè)正文全文寬:document.body.scrollWidth;
網(wǎng)頁(yè)正文全文高:document.body.scrollHeight;
網(wǎng)頁(yè)被卷去的高:document.body.scrollTop;
網(wǎng)頁(yè)被卷去的左:document.body.scrollLeft;
網(wǎng)頁(yè)正文部分上:windows.screenTop;
網(wǎng)頁(yè)正文部分左:windows.screenLeft;
屏幕分辨率的高:windows.screen.height;
屏幕分辨率的寬:windows.screen.widht;
屏幕可用工作區(qū)高度:windows.screen.availHeight;
屏幕可用工作區(qū)寬度:windows.screen.availWidth;
獲取對(duì)象的滾動(dòng)高度:scrollHeight;
設(shè)置或獲取位于對(duì)象左邊界和窗口中目前可見(jiàn)內(nèi)容的最左端之間的距離 :scrollLeft;
設(shè)置或獲取位于對(duì)象最頂端和窗口中可見(jiàn)內(nèi)容的最頂端之間的距離 :scrollTop;
獲取對(duì)象的滾動(dòng)寬度:scrollWidth;
獲取對(duì)象相對(duì)于版面或由父坐標(biāo):offsetParent 屬性指定的父坐標(biāo)的高度 :offsetHeight;
獲取對(duì)象相對(duì)于版面或由offsetParent 屬性指定的父坐標(biāo)的計(jì)算左側(cè)位置 :offsetLeft;
獲取對(duì)象相對(duì)于版面或由offsetTop 屬性指定的父坐標(biāo)的計(jì)算頂端位置:offsetTop;
event.clientX:相對(duì)于文檔的水平坐標(biāo);
event.clientY:相對(duì)于文檔的垂直坐標(biāo);
event.offsetX:相對(duì)于容器的水平坐標(biāo);
event.offsetY:相對(duì)于容器的垂直坐標(biāo);
document.documentElement.scrollTop:設(shè)置滾動(dòng)的垂直高度
event.clientX + document.documentElement.scrollTop:相對(duì)文檔的水平位置+垂直方向的滾動(dòng)量;
您可能感興趣的文章:
- JS實(shí)現(xiàn)固定在右下角可展開(kāi)收縮DIV層的方法
- js固定DIV高度,超出部分自動(dòng)添加滾動(dòng)條的簡(jiǎn)單方法
- js 固定懸浮效果實(shí)現(xiàn)思路代碼
- JS實(shí)現(xiàn)自動(dòng)固定頂部的懸浮菜單欄效果
- js實(shí)現(xiàn)簡(jiǎn)單的左右兩邊固定廣告效果實(shí)例
- js DIV滾動(dòng)條隨機(jī)位置的設(shè)置技巧
- js,jquery滾動(dòng)/跳轉(zhuǎn)頁(yè)面到指定位置的實(shí)現(xiàn)思路
- JS和JQUERY獲取頁(yè)面大小,滾動(dòng)條位置,元素位置(示例代碼)
- javascript 獲取頁(yè)面的高度及滾動(dòng)條的位置的代碼
- javascript 精確獲取頁(yè)面元素的位置
- JS簡(jiǎn)單實(shí)現(xiàn)DIV相對(duì)于瀏覽器固定位置不變的方法
相關(guān)文章
javascript開(kāi)發(fā)中因空格引發(fā)的錯(cuò)誤
最近寫一個(gè)關(guān)于用JavaScript做圖片自動(dòng)切換問(wèn)題發(fā)現(xiàn)一個(gè)非常奇特的問(wèn)題,除了空格和換行外完全相同的代碼,在Firefox下卻有截然不同的運(yùn)行結(jié)果,今天記錄以提供他人留意及自我備查。2010-11-11
只需五句話搞定JavaScript作用域(經(jīng)典)
javascript作用域是前端開(kāi)發(fā)比較難理解的知識(shí)點(diǎn),下面小編給大家提供五句話幫助大家很快的了解js作用域,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-07-07
JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確問(wèn)題解決方法
這篇文章主要介紹了JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確問(wèn)題解決方法,因轉(zhuǎn)換的字符串?dāng)?shù)字都以0開(kāi)頭,導(dǎo)致parseInt函數(shù)在瀏覽器和Android WebView中轉(zhuǎn)換結(jié)果不一樣,本文給出了解決方法,需要的朋友可以參考下2015-04-04
JavaScript中的宏任務(wù)和微任務(wù)執(zhí)行順序
在?JavaScript?中,宏任務(wù)和微任務(wù)是指在執(zhí)行代碼的過(guò)程中的兩種不同的任務(wù)類型,這篇文章主要介紹了JavaScript中的宏任務(wù)和微任務(wù)執(zhí)行順序,需要的朋友可以參考下2022-12-12
IntelliJ IDEA 安裝vue開(kāi)發(fā)插件的方法
本篇文章主要介紹了IntelliJ IDEA 安裝vue開(kāi)發(fā)插件的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
原生JS實(shí)現(xiàn)ajax與ajax的跨域請(qǐng)求實(shí)例
下面小編就為大家分享一篇原生JS實(shí)現(xiàn)ajax與ajax的跨域請(qǐng)求實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12

