document.body.scrollTop 值總為0的解決方法 比較常見(jiàn)的標(biāo)準(zhǔn)問(wèn)題
更新時(shí)間:2009年11月30日 19:41:23 作者:
頁(yè)面具有 DTD(或者說(shuō)指定了 DOCTYPE)時(shí),使用 document.documentElement。
做頁(yè)面的時(shí)候可能會(huì)用到位置固定的層,讀取 document.body.scrollTop 來(lái)設(shè)置層的位置,像這樣:
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.body.scrollTop + "px";
}
可是怎么沒(méi)有達(dá)到預(yù)期效果呢,輸出 document.body.scrollTop 的值一看,一直都是 0。原來(lái)是 DTD 的問(wèn)題,要是頁(yè)面直接用 開(kāi)頭的話(huà)就沒(méi)有問(wèn)題了。但是要符合 web 標(biāo)準(zhǔn),DTD 當(dāng)然是不能少的。具有 DTD 時(shí)用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.documentElement.scrollTop + "px";
}
編者注:
頁(yè)面具有 DTD(或者說(shuō)指定了 DOCTYPE)時(shí),使用 document.documentElement。
頁(yè)面不具有 DTD(或者說(shuō)沒(méi)有指定了 DOCTYPE)時(shí),使用 document.body。
在 IE 和 Firefox 中均是如此。
為了兼容,可以使用如下代碼: var scrollTop = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop
|| 0;
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.body.scrollTop + "px";
}
可是怎么沒(méi)有達(dá)到預(yù)期效果呢,輸出 document.body.scrollTop 的值一看,一直都是 0。原來(lái)是 DTD 的問(wèn)題,要是頁(yè)面直接用 開(kāi)頭的話(huà)就沒(méi)有問(wèn)題了。但是要符合 web 標(biāo)準(zhǔn),DTD 當(dāng)然是不能少的。具有 DTD 時(shí)用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.documentElement.scrollTop + "px";
}
編者注:
頁(yè)面具有 DTD(或者說(shuō)指定了 DOCTYPE)時(shí),使用 document.documentElement。
頁(yè)面不具有 DTD(或者說(shuō)沒(méi)有指定了 DOCTYPE)時(shí),使用 document.body。
在 IE 和 Firefox 中均是如此。
為了兼容,可以使用如下代碼: var scrollTop = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop
|| 0;
相關(guān)文章
純前端JavaScript實(shí)現(xiàn)Excel IO案例分享
這篇文章主要為大家詳細(xì)介紹了純前端JavaScript實(shí)現(xiàn)Excel IO案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
微信小程序?qū)崿F(xiàn)select二級(jí)下拉
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)select二級(jí)下拉效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
詳解js根據(jù)百度地圖提供經(jīng)緯度計(jì)算兩點(diǎn)距離
這篇文章主要介紹了js根據(jù)百度地圖提供經(jīng)緯度計(jì)算兩點(diǎn)距離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
關(guān)于onScroll事件在IE6下每次滾動(dòng)觸發(fā)三次bug說(shuō)明
今天測(cè)試發(fā)現(xiàn)IE6下用window.onscroll,每次滾動(dòng)時(shí)會(huì)觸發(fā)3次,而火狐、IE7沒(méi)此問(wèn)題,應(yīng)該是IE6的一個(gè)BUG2011-09-09
使用JavaScript實(shí)現(xiàn)簡(jiǎn)單圖像放大鏡效果
圖像放大鏡在很多網(wǎng)站中都扮演著重要的角色,大多數(shù)開(kāi)發(fā)人員使用?jquery?來(lái)創(chuàng)建圖像放大鏡。在本教程中,我將向大家展示如何使用?HTML、CSS?和?JavaScript?制作一個(gè)簡(jiǎn)單的圖像放大鏡,需要的可以參考一下2022-08-08
解析JavaScript中 querySelector 與 getElementById 方法的區(qū)別
這篇文章主要介紹了JavaScript中 querySelector 與 getElementById 方法的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10

