2

有没有办法使用iScroll v4检测用户何时位于页面底部?

4

2 回答 2

0

它不是内置的,但这是一种在滚动结束时添加回调的简单方法..(查看https://github.com/cubiq/iscroll/blob/master/src/iscroll.js

声明一个新事件(第 139 行)

onScrollLimit: null

然后在 _move 函数中调用它(第 490 行)

if (newY<that.maxScrollY) that.options.onScrollLimit.call(that, e);

并在 _startAni 函数中调用它(第 768 行)

if (step.y<that.maxScrollY) that.options.onScrollLimit.call(that);

最后一点的缺点是它会在开始动画时触发事件(当您抛出滚动区域时),而不是在物理上超过结束时。否则,在使用 css 转换时很难判断。

然后您所要做的就是在设置 iScroll 时将此添加到您的选项中

myScroll = new iScroll('view', {onScrollLimit: function(){
    console.log("I've past the end!");
}});
于 2013-03-21T17:39:01.113 回答
-2

您可以使用“onScrollEnd”监听来检测滚动何时结束。

例子:

var thingScroll = new iScroll('thing', {
        vScroll: false,
        hScrollbar: true,
        snap: '.page',
        bounce: true,
        inertia: false,

        onScrollEnd: function() {

                          //do stuff

        } 
    });

我相信这会让你知道它何时触及底部(或底部捕捉区域),如果你想更具体地尝试一下,你可以使用 thingScroll.x 和 thingScroll.y 方法和一些 jquery 数学来亲自配置它。

希望这可以帮助!

于 2013-03-08T17:25:25.347 回答