当为html文档加上如下头以支持xhtml过渡标准时候,使用document.body.scrollTop值始终为0
<! 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" xml:lang ="zh-CN" lang ="zh-CN" >
这是document.body.scrollTop始终为0,这时需要用document.documentElement.scrollTop才能获得正确的值
而如果不加xhtml的申明,document.documentElement.scrollTop将为0
下面这个getScrollXY()方法可以包装这个变化
< html >
< body >
< div id ="dd" > < br />< br />< br />< br />< br />< br />< br />< br />< br />< br />< br />
< br />< br />< br />< br />< br />< br />< br />< br />< br />< br />
</ div >
scrollLeft: < input id ="disp1" />< br />
scrollTop: < input id ="disp2" />< br />
< button onclick ="onClick()" > 获得scrollXY </ button >
< script type ="text/javascript" >
function getScrollXY(){
var x,y;
if (document.body.scrollTop){
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
else {
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
}
return {x:x,y:y};
}
function onClick(){
document.getElementById( " disp1 " ).value = getScrollXY().x;
document.getElementById( " disp2 " ).value = getScrollXY().y;
}
</ script >
</ body >
</ html >
转载于:https://blog.51cto.com/xu20cn/153719