标题:document.body.scrollTop为什么总为0?
只看楼主
hellenism
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2009-2-27
结帖率:76.47%
已结贴  问题点数:5 回复次数:1 
document.body.scrollTop为什么总为0?
实现一个div随滚动条往下拉,但是该div总保持在窗口顶端

代码如下:
<script language="javascript" type="text/javascript">
        <!--
        
    window.onscroll=function(){
        var oWatermark =document.getElementById("divWatermark");
        oWatermark.style.top=document.body.scrollTop;//每次把scrollTop赋值给div的top
        
        }
        
        -->
   
    </script>
</head>
<body>
 <p>Try scrolling this windows.</p>
 <div id="divWatermark" style="position:absolute;top:0px;right:100px;color:red;width:150px;height:30px;background-color:navy;">Watermark
 </div>
 <p>Line 1</p>
 <p>Line 2</p>
 <p>Line 3</p>
 <p>Line 4</p>
 <p>Line 5</p>
 <p>Line 6</p>
 <p>Line 7</p>
 <p>Line 8</p>
 <p>Line 9</p>
 <p>Line 10</p>
 <p>Line 11</p>
 <p>Line 12</p>
 <p>Line 13</p>
 <p>Line 14</p>
 <p>Line 15</p>
 <p>Line 16</p>
 <p>Line 16</p>
 <p>Line 16</p>
 <p>Line 16</p>
 <p>Line 16</p>
 <p>Line 16</p>
 <p>Line 16</p>
</body>
</html>


测试了一下,document.body.scrollTop总为0,所以div不会动,总是在top=0的地方,这是为什么呢?
搜索更多相关主题的帖子: body document scrollTop 
2010-05-15 11:26
frankqnj
Rank: 4
等 级:贵宾
威 望:12
帖 子:320
专家分:278
注 册:2008-4-6
得分:5 
DTD的原因  如果你使用的是 xhtml1.0 的话  那么 对应的 元素应该是 document.documentElement
如果是 html4.0 的话 可以是document.body

当然 如果浏览器 是webkit引擎 document.body 在 CSS1Compat 模式下 仍然有效

做个判断好了

var container = == 'CSS1Compat' ? document.documentElement : document.body;
 用 container 代替 document.body 和documentElement  这是些 通用控件的一个技巧 以便使脚本可以在 两种 渲染模式下 都正常工作
2010-05-15 15:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306751-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.162497 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved