如何使用jQuery检测页面的滚动位置

Mav*_*ven 162 javascript jquery scroll

我在我的网站上遇到jQuery功能问题.它的作用是,它使用该window.scroll() 功能来识别窗口何时改变其滚动位置,并且在更改时调用一些函数来从服务器加载数据.

问题是,.scroll()只要滚动位置发生一点变化并在底部加载数据,就会调用该函数; 但是,我希望实现的是当滚动/页面位置到达底部时加载新数据,就像Facebook Feed一样.

但我不知道如何使用jQuery检测滚动位置?

function getData() {
  $.getJSON('Get/GetData?no=1', function (responseText) {
    //Load some data from the server
  })
};

$(window).scroll(function () {
    getData();
});
Run Code Online (Sandbox Code Playgroud)

Kon*_*nev 293

您可以使用jQuery的.scrollTop()方法提取滚动位置

$(window).scroll(function (event) {
    var scroll = $(window).scrollTop();
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

  • 但你怎么能这样做? (22认同)
  • 听窗口滚动本身并不坏.当人们在每次触发事件时尝试_do_事件发生故障时.如果你只做一些事情,比如将变量的值设置为当前滚动位置,或者设置为true/false,然后在事件之外使用_those_,那么通常应该是金色的. (12认同)
  • 将事件附加到窗口滚动是一个坏主意:请参阅http://stackoverflow.com/questions/5036850/how-to-detect-page-scroll-to-a-certain-point-in-jquery (8认同)
  • 在处理此类事件时,您应该考虑进行去抖动.请参阅https://davidwalsh.name/javascript-debounce-function (6认同)

Dav*_*tag 115

您正在寻找这个window.scrollTop()功能.

$(window).scroll(function() {
    var height = $(window).scrollTop();

    if(height  > some_number) {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)


yey*_*ene 35

点击这里DEMO http://jsfiddle.net/yeyene/Uhm2J/

function getData() {
    $.getJSON('Get/GetData?no=1', function (responseText) {
        //Load some data from the server
    })
};

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() == $(document).height()) {
       alert("bottom!");
       // getData();
   }
});
Run Code Online (Sandbox Code Playgroud)


小智 6

$(window).scroll( function() { 
 var scrolled_val = $(document).scrollTop().valueOf();
 alert(scrolled_val+ ' = scroll value');
});
Run Code Online (Sandbox Code Playgroud)

这是获取滚动值的另一种方法.