Phonegap android app(所有手机)内的惯性滚动

时间:2013-12-05 14:21:36

标签: android cordova scroll inertia

我的问题如下所述。

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

该列表显然是可滚动的。目的是为用户提供原生感觉体验,或者至少为其提供接近的用户体验。实际上,我想为大多数用户启用惯性(每个人都很棒!)。

Android无法下载该应用程序< 3.0手机,所以如果解决方案排除Android 2.X用户并不重要。此外,目前该应用程序不是针对平板电脑设计的,所以我不介意该解决方案是否适用于android< 4.0

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

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

在Ios上,绝对没有问题。它是快速和惯性滚动启用。

使用Android,我仍然遇到一些手机问题。以下是我的测试:

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

我没有'使用任何JavaScript库进行滚动(例如Iscroll等),我不想这样做,除非它是一个非常轻量级的库。事实上,我尝试过Iscroll,结果无法使用,因为它太慢而且不稳定。顺便说一句,事件列表包含渐变,图像,文本,阴影等...

我在互联网上做了很多研究。现在,我感到迷茫! 我甚至不知道问题是否与:

有关
  1. 制造商图层
  2. Android版
  3. 手机上的默认浏览器(我想不是因为它出现了 那个Phonegap不使用它)
  4. 嵌入式PhoneGap webKit渲染引擎
  5. 弃用的CSS属性:see this article
  6. 别的什么?
  7. 这有点奇怪,因为它适用于4.0.4和4.4但不适用于4.3 ......我开始认为这与制造商有关......

    任何有关上述内容的帮助,解决方案或信息都将非常感激。

2 个答案:

答案 0 :(得分:1)

不确定您是否已解决问题,但我刚遇到此问题。

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

答案 1 :(得分:0)

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

很酷的是它尽可能使用原生滚动,并且只在需要时才恢复为javascript。甚至可以在旧的Adroid设备上为我工作,同时保持iOS上的原生滚动感。