【问题标题】:Zepto JS is making the scrolling in my phonegap app unresponsiveZepto JS 使我的 phonegap 应用程序中的滚动无响应
【发布时间】:2023-04-02 20:04:01
【问题描述】:

其他人以前有过这个吗?

滚动有效...但是如果您滚动太快,页面就会保持静止。你需要慢慢来。

我也知道它是 zepto,就好像我用 只是 导入的 zepto 库创建了一个新页面(甚至没有从中调用任何东西),它的行为方式是这样的。 删除它,滚动再次完美!

什么给了...我认为 zepto 应该只是一个简约的类 jQuery 库...但即使是完整的 jQuery 库也不会像这样阻碍我的滚动!


解决了,反正对我来说。

检查下面的 cmets。

【问题讨论】:

  • 能否提供一个演示案例和小提琴?
  • 小提琴有帮助吗?它在Android上滚动变得无响应,而不是在计算机上。我有一个测试页面,它只是一个基本的 HTML 页面,导入了 zepto 和 cordova。体内有一个 UL,大约有 200 个 LI。而已。构建到 Android,滚动无响应。使用 jQuery 切换 zepto,滚动响应:-/
  • 哦...这很好奇。我构建了一个版本的 Zepto, 没有触摸事件模块,突然间一切似乎都响应了。嗯嗯嗯!
  • 我也遇到过这个,想知道它是什么。我也可以尝试不使用 touch.js,看看它是否是罪魁祸首。我假设您使用的是 css 滚动而不是 js 滚动库链接 iScroll?
  • 是的,没错。我发现了这个问题 - 它是 zepto 的 touch.js 模块的第 56 行 - .bind('touchmove')... 基本上,如果触摸和释放时间太长,绑定中的 if 语句将完全禁用任何类型的交互小(我想试图否定意外触摸)。但是,这确实与滚动有关,尤其是在您使用快速轻弹的情况下。我刚刚注释掉了 if 语句(第 60 行),一切又好了。稍后我会处理适当的触摸处理。

标签: jquery cordova zepto


【解决方案1】:

这确实发生在带有 Zepto Touch 的 Android 上。在PhoneGap应用程序上拉了我几个小时的头发,然后在这里跌跌撞撞,发现问题出在Zepto上。 (添加-webkit-overflow-scrolling: touch后在iOS上没有问题)

这是我的解决方法:

$('.scrolling').bind('touchmove', function(e) { e.stopPropagation(); }

这阻止了 Zepto 检查意外触摸发生在某些已启用滚动(在本例中为手动“滚动”类)的 div 上,但 YMMV。

【讨论】:

    最近更新 更多