2013-01-24 59 views
9

我一直在四处搜寻,以了解在网页上的iPad上滚动时触发的事件。iPad滚动 - 滚动期间触发了哪些事件?

有这个来源: https://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariWebContent/HandlingEvents/HandlingEvents.html

指示以下被解雇:

ontouchstart="touchStart(event);" 

ontouchmove="touchMove(event);" 

ontouchend="touchEnd(event);" 

ontouchcancel="touchCancel(event);" 

的问题是如何应对的势头滚动当用户轻弹滚动。我认为滚动结束时只会触发onsroll事件。

有没有人知道在动量滚动发生时是否触发了任何事件,因此您可以在页面在此“动量”下滚动时执行检查?

欢呼声

+3

您是否检查过动量滚动过程中窗口上的“滚动”事件是否触发?例如:'$(window).scroll(function(){console.log('scrolling')});' –

+0

目前无法[打开开发控制台](http://superuser.com/questions/614671 /如何在iPad上打开开发者控制台 - 在Chrome上)。但是,从我有限的经验来看,当窗口动态滚动时它不会触发。 –

+0

您可以使用Safari Web Inspector在iOS上调试Safari。这种能力已经[有一段时间了。](https://webdesign.tutsplus.com/articles/quick-tip-using-web-inspector-to-debug-mobile-safari--webdesign-8787) – bvpb

回答

2

问题是在iPad上滚动不会持续激发。当您停止滚动时,它只会触发一次。据我所知,你无法解决这个问题。

在桌面上,情况并非如此。在滚动浏览器的过程中,不断触发滚动事件。

当我在一个视差滚动网站上工作时,我注意到了这种行为。在iOS上,一切都结结巴巴,因为滚动事件只能触发一次。

然而,它是可能这里描述模拟:javascript scroll event for iPhone/iPad?

0

使用此代码

document.addEventListener('touchmove', function(e) {console.log('touch move', $(window).scrollTop())}, true); 

它即使在触摸火灾。