2012-03-22 32 views
5

我目前在爲iPad優化的網頁上使用overflow:scroll,並且效果很好。我開始在滾動div中的項目上碰觸事件,因爲它將滾動滑動解釋爲觸摸。由於沒有滾動完成事件,並且每次滾動時都會觸發滾動事件,所以我嘗試檢測滾動事件並設置一個定時器以臨時禁用觸摸事件。但是,我發現滾動事件只會在用戶每次啓動滾動時觸發,這很少用慣性滾動。移動Safari上的慣性滾動事件

是否存在不斷滾動的滾動事件或其他方式來檢測滾動正在發生?

這只是Mobile Safari上慣性滾動的一個問題,因爲當您在OS X上移動鼠標時,慣性滾動會自動停止,因此要啓動單擊事件,您通常需要移動鼠標,從而避免衝突。您也沒有觸摸的雙重用途輸入用於滾動和輕觸攻絲。

回答

3
<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> 
+3

我相信他指的是動量滾動時間段,它不是由'touchmove'或'scroll'事件處理的。 – zanona 2013-12-18 01:14:33

+1

剛剛花了一天的時間在iOS7上驗證這個設置爲溢出的div:scroll-safari將在兩種情況下觸發滾動事件:** 1)用戶觸摸並移動觸摸開始滾動** - 它看起來像在這種情況下,滾動事件觸發的次數與touchmove事件一樣多** 2)用戶啓動了「輕彈」式滾動** - safari只會在滾動停止時觸發滾動事件(包括底部反彈) – 2014-02-12 07:33:53

+0

因爲我還在Android 4.4上查看了Chrome瀏覽器 - Chrome會在滾動發生時觸發滾動事件(即使有慣性),並會在滾動開始時觸發單個touchmove事件。然而,Safari會觸發**滾動和touchmove事件,同時按住手指並滾動div。 – 2014-02-12 07:45:39