使用jquery在touchmove上滚动事件

Posted

技术标签:

【中文标题】使用jquery在touchmove上滚动事件【英文标题】:Scroll event on touchmove with jquery 【发布时间】:2012-02-24 10:49:14 【问题描述】:

我目前正在研究使用 $(window).bind('scroll' 的东西,但我遇到的问题是,在 iPad 和其他触摸设备上,只有当用户停止移动并移开手指时才会触发滚动事件. 我尝试过使用 touchmove,但无法弄清楚如何准确获取 $(window).scrollTop()。有人有什么想法吗?

【问题讨论】:

可能值得研究一个特定的滚动库,例如 iScroll 或 TouchScroll 【参考方案1】:

See this answer for reference

虽然以下两种方法都应该有效,但首选方法是...

...对于 Jquery 1.7 及更高版本:

$('body').on(
'touchmove': function(e)  
    console.log($(this).scrollTop()); // Replace this with your code.

);

...或更早

$('body').bind('touchmove', function(e)  
console.log($(this).scrollTop()); // Replace this with your code.
);

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

【讨论】:

如何触发滚动或 touchmove 但不能同时触发?

以上是关于使用jquery在touchmove上滚动事件的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 上使用 touchmove 事件移动图像

无法阻止“touchmove”在 iOS 上滚动窗口

如何从 IOS Safari 中的 touchmove 事件中检测滚动画布

停止弹出对话框的 touchmove 事件

touchstart和touchmove之间的iOS延迟?

移动端touch事件滚动