请教,如何判断一个元素是否滚动到屏幕可视区域底部?

一个元素原来位于屏幕可视区域底部的上面,当滚动条往上滚动时,这个元素接触到了屏幕底部,我想在该元素接触到屏幕底部时触发一个函数,那么怎么才能捕获到元素接触到屏幕底部这个情况呢?

阅读 13.3k
3 个回答
<div class="element" style="height: 100px;width:100px; border:1px solid;margin-top:500px"></div>

元素触底就变红,否则变白色

    <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
    <script>
        var element = $('.element');
        var win = $(window);
        win.scroll(function() {
            if (element.offset().top + element.height() <= win.height() + win.scrollTop()) {
                element.css('backgroundColor', '#f33');
            } else {
                element.css('backgroundColor', '#fff');
            }
        })
    </script>

可以通过js得盒子模型获取到当前的scrollTop还有元素的clientTop,再已知盒子高度的情况下进行判断。

document.addEventListener('scroll', function () {
    var div = document.getElementById('div')
    if (document.body.scrollTop === div.offsetTop) {
        //...
    }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题