我在我的网站上遇到了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();
});

当前回答

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

$(window).scroll(function (event) {
    var scroll = $(window).scrollTop();
    // Do something
});

其他回答

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

这是另一种获取scroll值的方法。

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

$(window).scroll(function (event) {
    var scroll = $(window).scrollTop();
    // Do something
});

这对我来说很管用……

$(document).ready(function(){

    $(window).resize(function(e){
        console.log(e);                   
    });

    $(window).scroll(function (event) {
        var sc = $(window).scrollTop();
        console.log(sc);
    });

})

它工作得很好……然后你可以使用JQuery/TweenMax来跟踪元素和控制它们。

点击这里查看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();
   }
});

GET滚动位置:

var scrolled_val = window.scrollY;

检测滚动位置:

$(window).scroll
(
     function (event) 
     {
          var scrolled_val = window.scrollY;
          alert(scrolled_val);
     }
 );