(在线qq滚动)document.documentElement.scrollTop 和 document.body.scrollTop)

网站上放了在线qq的代码。可以随鼠标的下拉跟着滚动。

但是只要网页上有<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">就不会滚动。

应该是这个标准不支持有些属性的写法。以前都是把上面的那行代码去掉,不过一去掉有些css样式就乱了,今天也没啥事就搜了一下。

找到这篇文章:http://blog.csdn.net/tfgdd/archive/2010/01/12/5182033.aspx

在设计页面时可能经常会用到固定层的位置,这就需要获取一些html对象的坐标以更灵活的设置目标层的坐标,这里可能就会用到document.body.scrollTop等属性,但是此属性

在xhtml标准网页或者更简单的说是带<!DOCTYPE ..>标签的页面里得到的结果是0,如果不要此标签则一切正常,那么在xhtml页面怎么获得body的坐标呢,当然有办法-使用

document.documentElement来取代document.body,可以这样写

例:
var top = document.documentElement.scrollTop || document.body.scrollTop;
在javascript里||是个好东西,除了能用在if等条件判断里,还能用在变量赋值上。那么上例等同于下例。
例:
var top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
这么写可以得到很好的兼容性。

相反,如果不做声明的话,document.documentElement.scrollTop反而会显示为0。


原文地址:https://www.cnblogs.com/nyth/p/1890852.html