滚动时是否可以抓取用户滚动条的当前位置?
比如说,如果它们滚动到最顶部,那么它将为0,如果它们向下滚动则会改变。
我可以在每次访问时分配一个变量来包含当前滚动位置,还是已经在JavaScript中有一个函数?
答案 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>
答案 1 :(得分:6)
window
对象上有一些属性:window.scrollX
和window.scrollY
。
参见例如http://javascript.gakaa.com/window-scrollx-2-0-scrolly.aspx
答案 2 :(得分:4)
尝试使用.scrollTop()
以下是一个例子:
修改强>
如果您尝试输出正在滚动的元素的位置,那么可以使用.scroll()事件来实现:
$('#container').scroll(function(){
var position = $('#container').scrollTop();
});
这是一个实例:
答案 3 :(得分:3)
您可以获取body元素的scrollTop属性:
document.getElementsByTagName('body')[0].scrollTop;
这将返回可见区域上方的像素数。当用户未滚动时为0,当滚动条位于底部时为bodyheight-viewporthieght
。
答案 4 :(得分:0)
作为Paul D Waite回答的补充,您可以告诉浏览器使用window.scroll(0,0);
滚动窗口,其中值引用x和y位置。