|
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
注意:
if (window.innerHeight) {
posX = window.pageXOffset;
posY = window.pageYOffset;
}
else if (document.documentElement && document.documentElement.scrollTop) {
posX = document.documentElement.scrollLeft;
posY = document.documentElement.scrollTop;
}
else if (document.body) {
posX = document.body.scrollLeft;
posY = document.body.scrollTop;
}
這段代碼是為了兼容標(biāo)準(zhǔn),在xhtml頁(yè)面中,document.body.scrollTop始終為0,即該屬性無(wú)效,因此必須用其他的屬性來(lái)判斷,為兼容新舊標(biāo)準(zhǔn),應(yīng)該對(duì)屬性的可用性進(jìn)行判斷。
引用網(wǎng)上的一段文字:
引用
應(yīng)用WEB標(biāo)準(zhǔn)會(huì)使ScrollTop屬性失效?。?!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
加上這段后,document.body.scrollTop永遠(yuǎn)等于0
body onscroll = "alert(document.body.scrollTop);"永遠(yuǎn)也不會(huì)引發(fā)。
解決辦法:
使用:
document.documentElement.scrollTop
示例一:
var scrollPos;
if (typeof window.pageYOffset != 'undefined') {
scrollPos = window.pageYOffset;
}
else if (typeof document.compatMode != 'undefined' &&
document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
}
else if (typeof document.body != 'undefined') {
scrollPos = document.body.scrollTop;
}
alert(scrollPos);
示例二:
function WebForm_GetScrollX()
{
if (__nonMSDOMBrowser)
{
return window.pageXOffset;
}
else
{
if (document.documentElement && document.documentElement.scrollLeft)
{
return document.documentElement.scrollLeft;
}
else if (document.body)
{
return document.body.scrollLeft;
}
}
return 0;
}
-------------------------------------
pageYOffset是NETscape的
document.body.scrollTop和document.documentElement.scrollTop是ie的,但我不知道他們的真正區(qū)別,只知道documentElement.scrollTop是xhtml兼容的(我用的是strict)
JavaScript技術(shù):javascript跟隨滾動(dòng)條滾動(dòng)的層(浮動(dòng)AD效果),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。