Zepto JS 使我的 phonegap 应用程序中的滚动无响应
Posted
技术标签:
【中文标题】Zepto JS 使我的 phonegap 应用程序中的滚动无响应【英文标题】:Zepto JS is making the scrolling in my phonegap app unresponsive 【发布时间】:2013-03-21 01:16:24 【问题描述】:其他人以前有过这个吗?
滚动有效...但是如果您滚动太快,页面就会保持静止。你需要慢慢来。
我也知道它是 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 行),一切又好了。稍后我会处理适当的触摸处理。 【参考方案1】:这确实发生在带有 Zepto Touch 的 Android 上。在PhoneGap应用程序上拉了我几个小时的头发,然后在这里跌跌撞撞,发现问题出在Zepto上。 (添加-webkit-overflow-scrolling: touch
后在ios上没有问题)
这是我的解决方法:
$('.scrolling').bind('touchmove', function(e) e.stopPropagation();
这阻止了 Zepto 检查意外触摸发生在某些已启用滚动(在本例中为手动“滚动”类)的 div 上,但 YMMV。
【讨论】:
以上是关于Zepto JS 使我的 phonegap 应用程序中的滚动无响应的主要内容,如果未能解决你的问题,请参考以下文章
如何通过覆盖 BackButton 使我的 PhoneGap android 应用程序 onPause?