我正在尝试检测用户在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);
基本思路,每200ms轮询一次pageYOffset,如果没有变化则没有滚动发生。否则,继续寻找。
正如我所说,这适用于iPhone,所以我假设它与Android有关,可能在滚动期间无法更新pageYOffset?
非常感谢任何帮助!
注意:我选择了这条路线,因为找不到isScrolling属性或scrollStop类型事件。如果我忽略了一个,请告诉我:)
由于
更新:刚尝试使用'滚动' 事件来检测这个。结果喜忧参半 这里。在Android模拟器上它是 工作几乎正确,但非常 在实际手机上断断续续的(2.1 Sense Hero GSM),即只有十分之一 检测到卷轴。
即使它正在'工作'上 模拟器它没有触发滚动 当你向上滚动'向上'时的事件 位于页面顶部(即 推高看地址栏)。这个 页面实际上是一个问题 滚动(改变位置),但我 我没有收到这个活动。
请注意,iPhone似乎确实很火 正确检测事件(至少 在模拟器中,无法访问设备 目前)。
任何想法的人?
更新2:似乎有新的“滚动”事件 工作(与...相同) 某些模拟器(1.6和2.1)) Android设备。将继续 调查试图缩小这一点 下来。
仍然存在'滚动'的问题 向上滚动到 地址栏。可能必须有一些 一种'滚动'的混合解决方案 事件检测和移动轮询 触摸后。
答案 0 :(得分:1)
答案 1 :(得分:1)
英雄有助于插入偶尔发生的事件,并且没有正确地向javascript报告。我们在Android开发中发现了其中的一些。有时你拿着电话的方式似乎很重要(不是开玩笑!)
答案 2 :(得分:0)