记一次“回到顶端”事件的惨痛教训!

返回顶端按钮一直不显示,打开控制台后发现是其直接执行了else中的代码,从而确定是if条件的问题,

$.fn.UiBackTop=function(){
    var ui=$(this);
    var el=$('<a class="ui-backTop" href="#0"></a>');
    ui.append(el);
    $(window).on('scroll',function(){
        var top=$('body').scrollTop();
        if(top>=400){
            el.show();
        }else{
            el.hide();
        }
    });
    el.on('click',function(){
        $(window).scrollTop(0);
    });

}

打开控制台,alert发现document.body.scrollTop一直是0。

查资料发现是DTD的问题。

页面指定了DTD,即指定了DOCTYPE时,使用document.documentElement。

页面没有DTD,即没指定DOCTYPE时,使用document.body。

IE和Firefox都是如此。

jQuery中,$(document).scrollTop()与 $(window).scrollTop()效果完全相同

但是,(window).scrollTop()被所有浏览器支持

所以尽量用(window).scrollTop();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值