如何获取用户向下滚动页面的像素数?

gad*_*lol 15 javascript jquery scrollbar

假设我们有一个高大的html页面.所以会有一个垂直滚动条.

当用户向下滚动时,我想知道他使用javascript(jquery)滚动了多少我觉得......这可能吗?

Fab*_* Sa 31

在纯JavaScript中你可以这样做:

window.onscroll = function (e) {
    console.log(window.scrollY); // Value of scroll Y in px
};
Run Code Online (Sandbox Code Playgroud)

更多信息(Mozilla开发者网络):

  • 我很惊讶没有人赞成这一点.来自我的+1;) (2认同)

jus*_*tkt 20

您可以使用.scroll().scrollTop()来完成此操作.

 $(window).scroll(function() {
     // use the value from $(window).scrollTop(); 
 });
Run Code Online (Sandbox Code Playgroud)

另见这个问题.


Fré*_*idi 5

是的。请参阅jQuery 中的scrollTop() ,它包装了scrollTop DOM 属性。


小智 5

这就是我在网站上使用的...当任何人向下滚动620像素时,菜单会弹出,我会手动输入数字。我对javascript仍然不满意,但我希望这对您有所帮助

    <script>
    $(document).ready(function(){
        $(window).scroll(function(){
            var scrollTop = 620;
            if($(window).scrollTop() >= scrollTop){
                $('.Nav').css({
                    position : 'fixed',
                    top : '0'
                });
            }
            if($(window).scrollTop() < scrollTop){
                $('.Nav').removeAttr('style');  
            }
        })
    })
    </script>
Run Code Online (Sandbox Code Playgroud)

  • 尽管此方法有效,但可以进行改进,不需要第二个if语句,只需使用else即可。另外,如果还有其他内联样式化的内容(可能是通过另一个js函数),则仅仅删除'style'属性也可能很危险。我认为更好的做法是,如果 (2认同)