当网页做了以下声明时
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
document.body.scrollTop的值永远等于0。
解决办法是只需把document.body用document.documentElement替换即可。
尤其要注意
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"或
"http://www.w3.org/TR/html4/loose.dtd"
这一段加以后就不可能使用document.body来取值了
DTD相关说明:
页面具有 DTD,或者说指定了 DOCTYPE 时,使用 document.documentElement。
页面不具有 DTD,或者说没有指定了 DOCTYPE,时,使用 document.body。
在 IE 和 Firefox 中均是如此。
为了兼容,不管有没有 DTD,可以使用如下代码:
var scrollTop = window.pageYOffset //用于FF || document.documentElement.scrollTop || document.body.scrollTop || 0;