Phonegap android应用程序中的惯性滚动(所有手机)



下面描述了我的问题。

我最近开发了一个Phonegap应用程序(Android和Ios是目标平台),并将其部署在市场上。我的应用程序主要包含事件列表

该列表显然是可滚动的。目的是给用户一种原生的感觉,或者至少是接近它的东西。实际上,我想为大多数用户启用惰性(每个人都会很棒!)。

安卓无法下载该应用程序<3.0手机,所以解决方案是否排除android 2.X用户也没关系。此外,目前该应用程序不是为平板电脑设计的,所以我不介意该解决方案是否适用于android<4.0.

我在可滚动的div上使用以下CSS属性:

overflow: scroll;
-webkit-overflow-scrolling: touch;

在Ios上,绝对没有问题。它很快并且启用了惯性滚动。

对于安卓系统,我的一些手机仍然存在问题。以下是我的测试:

  • Nexus 5(Android 4.4):惯性
  • 索尼爱立信(Android 4.0.4):惯性
  • 三星galaxy趋势(android 4.0.4):惯性
  • 三星Galaxy Note 3-SM-N9005(Android 4.3):无惯性
  • 三星Galaxy S4(Android 4.3):无惯性

我不使用任何JavaScript库来滚动(例如Iscroll ect…),我也不想这样做,除非它是一个非常轻量级的库。事实上,我试过Iscroll,但结果是无法使用的,因为它太慢和不稳定了。顺便说一下,事件列表包含渐变、图像、文本、阴影等…

我在互联网上做了很多研究。现在,我感到失落!我甚至不知道这个问题是否与有关

  1. 制造商层
  2. Android版本
  3. 手机上的默认浏览器(我想不是因为它出现了Phonegap不使用它)
  4. 嵌入式PhoneGap webKit渲染引擎
  5. 不推荐的CSS属性:请参阅本文
  6. 还有别的吗

这有点奇怪,因为它适用于4.0.4和4.4,但不适用于4.3…我开始认为这与制造商有关…

如有任何关于上述内容的帮助、解决方案或信息,我们将不胜感激。

不确定您是否已经解决了问题,但我刚刚遇到了这个问题。

我使用Hammer.js来检测侧边栏的拖动,在这样做的过程中,我调用了preventDefault(),它影响了android默认浏览器中的滚动惯性,但没有影响chrome。删除该呼叫解决了问题。

我也遇到了同样的问题。我研究了很长一段时间,我知道的唯一解决方案是使用滚动库。我发现最好的是Overthrow:http://filamentgroup.github.io/Overthrow/

酷的是,它尽可能使用本地滚动,并且只有在需要时才恢复到javascript。甚至在旧的Adroid设备上也适用于我,同时在iOS上保持原生的滚动感觉。

最新更新