$(window).scroll不适用于IE11

时间:2014-02-17 14:00:17

标签: javascript jquery internet-explorer

您好我已经制作了无限滚动功能来获取ajax数据,它的工作完美但不在iE 11中

代码的一部分:

$(window).load(function(){
  $(window).scroll(function(){
         if($(window).scrollTop() >= ($(document).height() - $(window).height())){
          limitFeeds += 30;
          getFeeds("noloop",limitFeeds);
         }
  });
});

任何问题?

由于

2 个答案:

答案 0 :(得分:1)

jQuery用于处理滚动事件的抽象方法在Internet Explorer中按预期工作。但请注意,jQuery 2.x适用于IE9 +,而jQuery 1.x适用于IE8及更低版本。请确保您使用的属性版本适用于您要定位的浏览器。

以下(使用lodash for debounce)呈现您在IE11中期待的结果:

(function () {

    "use strict";

    var debounced = _.debounce(function () {
        if ($win.scrollTop() >= $doc.height() - $win.height()) {
            // AJAX here
        }
    }, 250);

    var $doc = $(document), 
        $win = $(window).on("scroll", debounced);

}());

您可以在此在线测试:http://jsfiddle.net/jonathansampson/74cTx/

如果您仍然遇到问题,我会查看您的getFeeds方法,以确定它是否按预期运行。如果您在此处分享实施,我们很乐意协助您进一步解决问题。

答案 1 :(得分:0)

我有同样的问题。对我来说,似乎IE11在每个其他滚动上都是1像素。我通过允许一个小变化来解决它:

if ($(window).scrollTop() - ($(document).height() - $(window).height()) <= 5) && ($(window).scrollTop() - ($(document).height() - $(window).height()) >= -5)) 
{ 
    LoadMore(); 
}