为了检查页面的滚动值,我使用window
jQuery 包装对象,但是在滚动时,滚动事件的目标元素结果是document
对象:
$(window).scroll(function(e) {
alert('Scrolling ' + e.target);
});
包装以检查滚动值的正确对象是什么?
我知道它们之间的区别(一个窗口可以包含多个框架,因此可以包含许多文档),但是对于单个文档上下文,我看到滚动值是一致的:
alert($(window).scrollTop() === $(document).scrollTop());
编辑:
本机 JavaScript 也会发生这种情况:
window.onscroll = function(e) { alert('scrolled ' + e.target); };
元素绑定是window
,但事件目标是document
。
关于上面写的表达式,将对象的 scrollTop 值与window
对象之一进行比较document
:jQuery 文档说明$(window).width()
返回视口的宽度,而$(document).width()
返回 HTML DOM 元素的宽度;由于视口可能小于整个 HTML 元素的宽度,因此这两个值可能不同。