Jqeury监听页面的滚动条我写的一段代码如下:

 $(document).ready(function () {
            $(document.body).scroll(function () {
                console.log('scroll...');
            });
        });

以上代码无法触发,即使我的页面有滚动条也不行。多种尝试后发现页面的滚动条其实是在windows对象上,并不是像我想的那样在body上。正确的写法应该如下:

 $(document).ready(function () {

            $(window).scroll(function () {
                console.log('scroll...');
            });
        });

 

原因说明

页面滚动条实际挂在 window(或 document)上,而不是 body,因此给 $(document.body) 绑定 scroll 不会触发。

正确写法

  • $(window).on('scroll', function(){ ... });
  • 若滚动容器是某个设置 overflow:auto 的 div,则对该 div 绑定。
  • 注意取值对象要一致:window 用 $(window).scrollTop()。