移动设备上的jQuery实时滚动事件(解决方法)

Fra*_*yau 47 javascript jquery events scroll ios

古老的问题:当用户在移动网站或应用程序(Web视图)上滚动元素时,会触发滚动事件.

我正在寻找的是scrollTop()当用户在移动设备上滚动我的页面而不是在用户停止时获取它时访问正确的值.

我确定在某个地方有一个解决方法,如果我是正确的,这个限制是由iOS设置的,并且过去几年一直在讨论它.

我已经尝试过实现本机滚动模拟器,但它们似乎都没有按照我想要的方式工作,说实话,如果我真正想要的只是scrollTop()在用户滚动时是持久的,那就太过分了.

我正在考虑可能在touchStart上启动一个计数器并在touchStop上停止它,但有些东西告诉我,我在浪费时间.

有帮助吗?

Tha*_*dis 95

使用jQuery:

$('body').bind('touchmove', function(e) { 
    console.log($(this).scrollTop()); // Replace this with your code.
});
Run Code Online (Sandbox Code Playgroud)

当用户滚动时,这应该为您提供一致的scrollTop值流,但要小心,因为即使用户只是将手指放在屏幕上,它也会触发.

请注意,如果您使用的是jQuery> = 1.7,则首选的绑定方法 .on()不是.bind()我在我的示例中使用的方法.在那种情况下,我的例子是

$('body').on({
    'touchmove': function(e) { 
        console.log($(this).scrollTop()); // Replace this with your code.
    }
});
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/dantipa/pull-to-refresh-js/blob/master/jquery.plugin.pullToRefresh.js

  • 不知道我做错了什么,但这个解决方案对我来说效果更差,那么滚动事件...... (3认同)