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()。