Javascript Mobile Safari上惯性滚动的事件
我目前正在使用overflow:在为iPad优化的网页上滚动,效果非常好。我开始在滚动div中的项目上遇到触摸事件的麻烦,因为它将滚动滑动解释为触摸。由于没有滚动完成事件,并且每次滚动时滚动事件都会触发,因此我尝试检测滚动事件并设置计时器暂时禁用触摸事件。但是,我发现scroll事件仅在用户每次启动滚动时触发,这在惯性滚动中很少发生 是否存在持续触发滚动事件或其他方式来检测当前正在发生的滚动 这只是Mobile Safari上惯性滚动的一个问题,因为在OS X上移动鼠标时,惯性滚动会自动停止,因此要启动单击事件,通常需要移动鼠标,从而避免冲突。您也没有触摸滚动和触摸轻敲的双重用途输入。Javascript Mobile Safari上惯性滚动的事件,javascript,ipad,events,safari,scroll,Javascript,Ipad,Events,Safari,Scroll,我目前正在使用overflow:在为iPad优化的网页上滚动,效果非常好。我开始在滚动div中的项目上遇到触摸事件的麻烦,因为它将滚动滑动解释为触摸。由于没有滚动完成事件,并且每次滚动时滚动事件都会触发,因此我尝试检测滚动事件并设置计时器暂时禁用触摸事件。但是,我发现scroll事件仅在用户每次启动滚动时触发,这在惯性滚动中很少发生 是否存在持续触发滚动事件或其他方式来检测当前正在发生的滚动 这只是Mobile Safari上惯性滚动的一个问题,因为在OS X上移动鼠标时,惯性滚动会自动停止,因
<script type="text/javascript">
<!--
document.addEventListener("touchmove", ScrollStart, false);
document.addEventListener("scroll", Scroll, false);
function ScrollStart() {
//start of scroll event for iOS
}
function Scroll() {
//end of scroll event for iOS
//and
//start/end of scroll event for other browsers
}
// -->
</script>
我相信他指的是动量滚动期,它不是由“touchmove”或“scroll”事件处理的。在iOS7上花了一天时间验证这一点,div设置为overflow:scroll-safari将在两种情况下触发滚动事件:1)用户触摸然后移动他们的触摸启动滚动-看起来像滚动事件触发的次数与本例中的touchmove事件相同2)用户启动了一个“flick”风格的滚动-safari只会在滚动停止时触发滚动事件(包括底部反弹),因为我还查看了Android 4.4上的Chrome-当滚动发生时Chrome实际上会触发滚动事件(即使有惯性)并将在滚动的开始处触发单个touchmove事件。然而,Safari会在按住手指并滚动div的同时触发scroll和touchmove事件。有人知道如何解释滚动的动量吗?如果我使用上面的方法,即使滚动速度减慢并且没有完全停止,滚动结束也会触发。