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?

移动端开发框架Zepto.js

Phonegap 状态栏通知,Android,iOS

xcode 4 + phonegap ...在构建时不更新JS?

动画结束时如何使用 Zepto 调用函数?

我的小前端 —— JQ和zepto