【发布时间】:2012-12-13 03:00:33
【问题描述】:
为了检查页面的滚动值,我用jQuery包装了window对象,但是在滚动时,滚动事件的目标元素结果是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。
关于上面写的表达式,比较window对象的scrollTop值与document对象之一:jQuery文档解释$(window).width()返回视口的宽度,而$(document).width()返回视口的宽度HTML DOM 元素的宽度;由于视口可能小于整个 HTML 元素的宽度,因此这两个值可能不同。
【问题讨论】:
标签: javascript jquery scroll window document