下面描述了我的问题。
我最近开发了一个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,但结果是无法使用的,因为它太慢和不稳定了。顺便说一下,事件列表包含渐变、图像、文本、阴影等…
我在互联网上做了很多研究。现在,我感到失落!我甚至不知道这个问题是否与有关
- 制造商层
- Android版本
- 手机上的默认浏览器(我想不是因为它出现了Phonegap不使用它)
- 嵌入式PhoneGap webKit渲染引擎
- 不推荐的CSS属性:请参阅本文
- 还有别的吗
这有点奇怪,因为它适用于4.0.4和4.4,但不适用于4.3…我开始认为这与制造商有关…
如有任何关于上述内容的帮助、解决方案或信息,我们将不胜感激。
不确定您是否已经解决了问题,但我刚刚遇到了这个问题。
我使用Hammer.js来检测侧边栏的拖动,在这样做的过程中,我调用了preventDefault()
,它影响了android默认浏览器中的滚动惯性,但没有影响chrome。删除该呼叫解决了问题。
我也遇到了同样的问题。我研究了很长一段时间,我知道的唯一解决方案是使用滚动库。我发现最好的是Overthrow:http://filamentgroup.github.io/Overthrow/
酷的是,它尽可能使用本地滚动,并且只有在需要时才恢复到javascript。甚至在旧的Adroid设备上也适用于我,同时在iOS上保持原生的滚动感觉。