Javascript 移动设备上的jQuery实时滚动事件(解决方案)
古老的问题: 当用户在移动站点或应用程序(web视图)上滚动某个元素时触发滚动事件 我所要寻找的只是在用户在移动设备上滚动我的页面时访问正确的Javascript 移动设备上的jQuery实时滚动事件(解决方案),javascript,jquery,ios,events,scroll,Javascript,Jquery,Ios,Events,Scroll,古老的问题: 当用户在移动站点或应用程序(web视图)上滚动某个元素时触发滚动事件 我所要寻找的只是在用户在移动设备上滚动我的页面时访问正确的scrollTop()值,而不是在用户停止时获取它 我确信在某个地方有一个解决办法,如果我是正确的话,这个限制是由iOS设置的,并且在过去的几年里一直有关于它的讨论 我已经尝试过实现本机滚动模拟器,但它们似乎都没有按照我所希望的方式工作。老实说,如果我真正想要的是用户滚动时的持久性scrollTop(),那就太过分了 我目前正在考虑在touchStart上
scrollTop()
值,而不是在用户停止时获取它
我确信在某个地方有一个解决办法,如果我是正确的话,这个限制是由iOS设置的,并且在过去的几年里一直有关于它的讨论
我已经尝试过实现本机滚动模拟器,但它们似乎都没有按照我所希望的方式工作。老实说,如果我真正想要的是用户滚动时的持久性scrollTop()
,那就太过分了
我目前正在考虑在touchStart上启动一个计数器,然后在Touchtop上停止它,但有些事情告诉我我在浪费时间
有什么帮助吗?也许你可以看看他们的
\u move
-方法是如何实现的,该方法绑定到touchmove
事件:
这有点复杂,但我相信你会明白的。您也可以使用iScroll开始并绑定到他们的scrollmove事件(我不确定它在iScroll 5上是如何调用的,但在iScroll 4中它是onScrollMove
)该.y将为您提供正确的值。使用jQuery:
$('body').bind('touchmove', function(e) {
console.log($(this).scrollTop()); // Replace this with your code.
});
当用户滚动时,这将为您提供一个一致的scrollTop值流,但要小心,即使用户只是用手指在屏幕上,它也会触发
请注意,如果您使用的是jQuery>=1.7,那么首选的绑定方法是
.on()
而不是我在示例中使用的.bind()
方法。在这种情况下,我的例子是
$('body').on({
'touchmove': function(e) {
console.log($(this).scrollTop()); // Replace this with your code.
}
});
资料来源:我必须走iScroll路线才能做到这一点。我在这里写了我的实现:这看起来很有希望,我将在我的应用程序上测试它,然后接受答案,如果它有效的话。事实上,从技术上讲,你应该已经回答了这个问题,演示程序也可以运行了。好的,我现在就接受。我不确定我做错了什么,但这个解决方案对我来说比滚动事件更不好…当使用chrome设备工具栏(并通过单击鼠标和拖动滚动)但实际上不在移动设备上工作时,这似乎是可行的。