Ada*_*ath 7 javascript mobile android webkit dom-events
我试图检测用户在Android上使用javascript滚动网页的时间.我的脚本正在使用iPhone,对我而言,它应该适用于Android.无论如何,一个片段:
previous = pageYOffset;
interval = setInterval(function() {
//Has scrolling stopped?
if(previous == pageYOffset) {
clearInterval(interval);
//DO SOMETHING AFTER SCROLL COMPLETE
} else {
previous = pageYOffset;
}
}, 200);
Run Code Online (Sandbox Code Playgroud)
基本思路,每200ms轮询一次pageYOffset,如果没有变化则没有滚动发生.否则,继续寻找.
正如我所说,这适用于iPhone,所以我假设它与Android有关,可能不会在滚动期间更新pageYOffset?
任何帮助是极大的赞赏!
注意:我选择了这条路线,因为找不到isScrolling属性或scrollStop类型事件.如果我忽略了一个,请告诉我:)
谢谢
更新:刚试过使用'scroll'事件来检测这个.结果好坏参半.在Android模拟器上,它几乎正常工作,但在实际手机(2.1 Sense Hero GSM)上非常间歇,即仅检测到10个滚动中的1个.
即使它在模拟器上"工作",当您在页面顶部时向上滚动(即向上推看地址栏)时,它也不会触发滚动事件.这是一个问题,因为页面实际上已滚动(更改位置),但我没有收到该事件.
请注意,iPhone似乎确实触发并正确检测到事件(至少在模拟器中,此刻无法访问设备).
有什么想法吗?
更新2:新的'scroll'事件似乎在某些Android设备上起作用(与模拟器(1.6和2.1)相同).将继续调查,试图缩小此范围.
滚动到地址栏时仍然没有触发"滚动"问题.触摸后可能需要某种"滚动"事件检测和移动轮询的混合解决方案.
Hero 会很有帮助地介入偶尔发生的事件,但不会将它们正确地报告给 javascript。我们在 Android 开发中发现了很多这样的问题。有时,你拿手机的方式似乎很重要(不是开玩笑!)
| 归档时间: |
|
| 查看次数: |
3762 次 |
| 最近记录: |