我对 jQuery 很陌生,正在尝试通过滚动来做一些事情。通过我的研究,我发现了 scrollTop() 和 offset() 作为用于此目的的工具。我正在运行一个测试,按下按钮会提醒 div 的 offset().top 的值。当我滚动一点并按下按钮时,该值会发生变化。我的印象是这个值应该保持不变,因为当我滚动时,从 div 到文档顶部的距离不会改变。有人可以解释为什么会这样吗?
问问题
5207 次
2 回答
2
1
Element.offset().top;
是元素从文档顶部算起的像素数量,所以如果你这样做
alert( $('#element').offset().top );
$('#element').css('margin-top', '50px');
alert( $('#element').offset().top );
您应该看到值的变化
而scrollTop();
适用于可滚动元素,因此它将检测滚动条向下的距离这仅适用于html
orbody
除非您的元素具有overflow:scroll
所以
alert( $('#element').scrollTop() );
// Scroll the Element within 5 seconds
window.setTimeout(function(){
alert( $('#element').scrollTop() );
}, 5000);
长话短说,你可以说
offset
当元素移动scrollTop
时会发生变化,并且会在元素滚动时发生变化
于 2013-07-22T21:38:10.600 回答