每次用JavaScript / jQuery滚动时,你能获得用户的滚动位置吗?

时间:2011-08-24 21:16:14

标签: javascript jquery

滚动时是否可以抓取用户滚动条的当前位置?

比如说,如果它们滚动到最顶部,那么它将为0,如果它们向下滚动则会改变。

我可以在每次访问时分配一个变量来包含当前滚动位置,还是已经在JavaScript中有一个函数?

5 个答案:

答案 0 :(得分:22)

从你的评论中,我得到你正在寻找一个滚动事件监听器,如 http://api.jquery.com/scroll/,然后您可以使用http://api.jquery.com/scrollTop/找出滚动的位置。

例如:

<script>
$(window).scroll(function () { 
    //You've scrolled this much:
       $('p').text("You've scrolled " + $(window).scrollTop() + " pixels");
});
</script>

http://jsfiddle.net/pFaTF/

答案 1 :(得分:6)

window对象上有一些属性:window.scrollXwindow.scrollY

参见例如http://javascript.gakaa.com/window-scrollx-2-0-scrolly.aspx

答案 2 :(得分:4)

尝试使用.scrollTop()

以下是一个例子:

http://jsfiddle.net/LZM7H/


修改

如果您尝试输出正在滚动的元素的位置,那么可以使用.scroll()事件来实现:

$('#container').scroll(function(){
    var position = $('#container').scrollTop();
});

这是一个实例:

http://jsfiddle.net/LZM7H/2/

答案 3 :(得分:3)

您可以获取body元素的scrollTop属性:

document.getElementsByTagName('body')[0].scrollTop;

这将返回可见区域上方的像素数。当用户未滚动时为0,当滚动条位于底部时为bodyheight-viewporthieght

答案 4 :(得分:0)

作为Paul D Waite回答的补充,您可以告诉浏览器使用window.scroll(0,0);滚动窗口,其中值引用x和y位置。