document.body.scrollTop 值总为0

http://www.jb51.net/article/21168.htm

页面具有 DTD(或者说指定了 DOCTYPE)时,使用 document.documentElement。

做页面的时候可能会用到位置固定的层,读取 document.body.scrollTop 来设置层的位置,像这样:­

window.onscroll = function (){ 
var oFix = document.getElementById("divfix"); 
oFix.style.top = document.body.scrollTop + "px"; 
}

可是怎么没有达到预期效果呢,输出 document.body.scrollTop 的值一看,一直都是 0。原来是 DTD 的问题,要是页面直接用 开头的话就没有问题了。但是要符合 web 标准,DTD 当然是不能少的。具有 DTD 时用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。­

window.onscroll = function (){ 
var oFix = document.getElementById("divfix"); 
oFix.style.top = document.documentElement.scrollTop + "px"; 
}

编者注:­

页面具有 DTD(或者说指定了 DOCTYPE)时,使用 document.documentElement。 
页面不具有 DTD(或者说没有指定了 DOCTYPE)时,使用 document.body。 
在 IE 和 Firefox 中均是如此。 
为了兼容,可以使用如下代码: var scrollTop = window.pageYOffset 
|| document.documentElement.scrollTop 
|| document.body.scrollTop 
|| 0;

时间: 2024-10-13 17:47:31

document.body.scrollTop 值总为0的相关文章

关于scrollTop值一直为0的问题

在做聊天webapp时发现一个问题,当发送新消息时无法让页面自动滚到最下面显示最新的消息. 最先想到的解决思路就是用scrollTop方法,但是将内容节点绑定上scrollTop方法时一直不能生效,后来打开命令台时发现scrollTop的值一直为0.经过一番排查后终于发现问题的所在 scrollTop获取的值是滚动条产生的那个节点,也就是说虽然在content div里承载的聊天内容,但是为聊天内容产生出滚动条的DOM是它的父级元素,在这个产生滚动条的节点上就可以取得相应的scrollTop值.

OpenCV2.3的cvCalcHist函数有问题?255级值总为0,索性自己写一个直方图计算函数,附源码!

欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号248787278 ------------------------------------------- 我在写直方图规定化的代码过程中,发现OpenCV自带的cvCalcHist函数计算出的直方图的第255分量总是为0,测试了几张图都是这样,代码如下: #include <opencv2/opencv.hpp> #include <opencv2/legacy/compat.h

火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题

一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样, window.onscroll=function () { var oId=document.getElementByIdx_x("id"); oId.style.top=document.body.scrollTop+"px"; } 可是怎么没有达到预期效果呢,输出document.b

每日分享!~ 如何解决获取卷曲高度的问题,document.body.scrollTop为什么在pc端拿不到值

document.scrollingElement.scrollTop 时间挺快的- 又是四月的最后一天了!好了进入今天的正题了.你在做项目的时候,经常会不会搞混document.documentElement.scrollTop,和document.body.scrollTop呢? 在以前我也是经常搞混,为什么我监听了scroll是正确的? 比如我在pc 端使用了document.body.scrollTop去获取当前的窗口的高度,始终是0,正在着急为什么是0??? 到底哪里错了.找了半天可能

关于js中 document.body.scrollTop 不能返回正确值的原因

本来是为了通过document.body.scrollTop来获取浏览器垂直滚动条向下滚动的像素,但是不管滚动条在什么位置总是返回是0,造成这样的原因和html的头部声明有关,如果头部声明 为:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">,这样肯定得到的结果是 0,如果该为<!DOCTYPE

滚动事件:document.body.scrollTop总是0的原因

document.body.scrollTop 转换成 document.documentElement.scrollTop 具体原因可见:click here 原文地址:https://www.cnblogs.com/powerplay/p/8536694.html

scrollTop值为0等疑难杂症

IE6/7/8/9/10: 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 : 对于有doctype声明的页面则可以使用 document.documentElement.scrollTop : Safari: safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset : Firefox: 火狐等等相对标准些的浏览器就省心多了,直接用 document.documentElem

top:expression(eval(document.documentElement.scrollTop));

top:定义元素顶部在页面中的位置: expression:css中引用javascript的属性: document.documentElement.scrollTop:页面滚动条纵向位置坐标(documentElement是对于html标签,针对body标签的是body). ps--外话一句,在加了DTD的标准化W3C下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop代替(ie和firefox确实如此).但是我

document.body.scrollTop与document.documentElement.scrollTop兼容

项目中遇到这个小问题,看到有前辈总结,借来用一下 document.body.scrollTop与document.documentElement.scrollTop兼容 这两天在写一个JS的网页右键菜单,在实现菜单定位的时候发现了这个问题:chrome居然不认识document.documentElement.scrollTop! 看前辈们的文章,纷纷表示如果有文档声明(即网页第一句的docType)的情况下,标准浏览器是只认识documentElement.scrollTop的,但chrom