jQuery Mobile 1.4无限滚动:窗口滚动不会触发

时间:2014-07-14 00:29:32

标签: jquery-mobile

在jQuery Mobile 1.4中,为什么$(window).scroll没有被解雇?这是一个非工作示例,试图检测用户何时滚动到页面末尾:

http://jsfiddle.net/5x6T2/

$(document).on('pagecontainershow', function () {
    $(window).scroll(function () {
        if ($(window).scrollTop() + $(window).height() == $(document).height()) {
            alert("Bottom reached!");
        }
    });
});

pageshow弃用之前,这在jQuery Mobile 1.3中运行良好:

http://jsfiddle.net/Demr7/

$(document).on('pageshow', '.ui-page', function() {
    $(window).scroll(function () {
        if ($(window).scrollTop() + $(window).height() == $(document).height()) {
            alert("Bottom reached!");
        }
    });
});

有人知道该怎么办吗?

1 个答案:

答案 0 :(得分:19)

您不必使用任何第三方插件来实现无限滚动。你只需要听scrollstartscrollstop并做一些数学运算。

您需要的是$(window).scrollTop()$.mobile.getScreenHeight()$(".ui-content").outerHeight()$(".ui-header").outerHeight()$(".ui-footer").outerHeight()

$(window).scrollTop()的值与视口的高度值减去内容div的高度加上工具栏高度相匹配时,表示您已到达页面底部

请注意,您应删除每个已修复工具栏的<{1}}检索高度

1px听众附加到scrollstop,然后定义高度变量。

document
  

Demo (1)

(1)在iPhone 5 Safari Mobile上测试