document.body.scrollTop为零

本文介绍了解决document.body.scrollTop返回零的情况,提供了两种有效的方法,并通过示例代码展示了如何根据不同浏览器特性获取正确的滚动位置。

document.body.scrollTop为零,解决方法一:

把DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 改为:

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " 即可;

方法二:

 

                var scrollPos; 
        
if  ( typeof  window.pageYOffset  !=   ' undefined ' ) { 
           scrollPos 
=  window.pageYOffset; 
        } 
        
else   if  ( typeof  document.compatMode  !=   ' undefined '   &&  
             document.compatMode 
!=   ' BackCompat ' ) { 
           scrollPos 
=  document.documentElement.scrollTop; 
        } 
        
else   if  ( typeof  document.body  !=   ' undefined ' ) { 
           scrollPos 
=  document.body.scrollTop; 
        } 
                alert(scrollPos);

 

 

例如:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
body部分

<div id="div1" style="width:150px; height:150px; background-color:#000066; position:absolute; top:0px; right:0px;"></div>
<div id="one" style="width:700px; height:1000px; border:1px solid red;"></div>

javascript 部分

                  window.onscroll
=function(){
        var oDiv
=document.getElementById("div1");
        var scrollPos; 
        
if (typeof window.pageYOffset != 'undefined') { 
           scrollPos 
= window.pageYOffset; 
        } 
        
else if (typeof document.compatMode != 'undefined' && 
             document.compatMode 
!= 'BackCompat') { 
           scrollPos 
= document.documentElement.scrollTop; 
        } 
        
else if (typeof document.body != 'undefined') { 
           scrollPos 
= document.body.scrollTop; 
        } 
    
//    alert(document.body.clientWidth);
    
//    alert(document.body.clientWidth);
    
//    alert(document.body.scrollWidth);
        oDiv.style.top=scrollPos+"px";
    
//    oDiv.style.left =document.documentElement.scrollLeft+"px";

转载于:https://www.cnblogs.com/zhangabu585/archive/2008/10/02/1303263.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值