javascript - 如何处理html页面的滚动事件
怪我咯
怪我咯 2017-04-11 10:28:19
[JavaScript讨论组]

想实现当用户将页面滚动到底部时,应用显示返回顶部的按钮(之前是隐藏的)。为了实现这个功能需要跟踪页面的滚动事件,需要判断页面是否已经滚动到了底部。查了一下相关文档,碰到了问题,判断滚动事件,用body.onscroll还是window.onscroll,为什么?判断滚动的位置,用body.scrollTop,document.document.scrollTop,还是window.scrollY,为什么?不同浏览器实现的方式不一样吗?是否用DOCTYPE也有影响?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
PHPz

直接用插件不好吗,mcustomscrollbar 插件onTotalScroll方法检测滚动至底

伊谢尔伦

原生JavaScript:

 $(window).scroll(function(event){  
    var wScrollY = window.scrollY; // 当前滚动条位置    
    var wInnerH  = window.innerHeight; // 设备窗口的高度(不会变)    
    var bScrollH = document.body.scrollHeight; // 滚动条总高度        
    if (wScrollY + wInnerH >= bScrollH) {            
        console.log("到底了.");
    }    
});

JQuery :

$(window).scroll(function () {
    if ($(document).scrollTop() + $(window).height() >= $(document).height()) {
        console.log("到底了.");
    }
});

原理都是一样的:滚动底部的条件是: 滚动的高度 + windows 窗口高度 >= 滚动条总高度

PHP中文网
window.onscroll=function(){
    var h = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
}

望采纳

阿神

其实一般不会滚到底部才出现,一般是大于窗口高度就出现了,个人看法。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号