移動端滑動事件

來源:互聯網
上載者:User

標籤:

   安卓webview下使用zepto的swipe時遇到的問題

   (使用zepto的swipe時必須引用touch.js,不然很多移動端瀏覽器swipe會失靈。)

   我想要用swipeLeft/swipeRight監聽向左向右滑動事件,如果只是單純為元素增加swipeLeft/swipeRight事件的話在webview下是不生效的,如果這個頁面不需要上下滑動的話,完全可以用

$(‘body‘).bind("touchmove", function(e) {     e.preventDefault();});

解決。即取消body的touchmove預設行為即可。但這種做法太絕對太暴力了,如果頁面需要上下滑動的話,那就會出問題。這裡有兩種情況,第一種是頁面內的某個元素需要上下滑動,另一種是頁面需要上下滑動。第一種情況,只是頁面內某個元素需要上下滑動的話,可為這個元素監聽touchmove事件,阻止冒泡。比如:
$(id).bind("touchmove", function(e) {     e.stopPropagation()});

那如果是整個頁面需要上下滑動,就全部用touch(touchStart/touchmove/touchEnd)類比實現(在安卓webview下我類比的swipe手勢並不會觸發touchend事件,我想這應該也是zepto自己封裝的swipe事件失效的原因,思路是在使用者剛開始滑動的時候,判斷使用者是想上下滑動還是左右滑動,上下滑動的話不做處理,左右滑動的話,對touchmove事件進行preventDefault()操作。)

jquery不支援swipe事件,需應用jquery mobile



原生javascript touch事件,touchstart,touchmove,touchend

   三種在規範中列出並獲得跨行動裝置廣泛實現的基本觸摸事件:

   1. touchstart :手指放在一個DOM元素上。
   2. touchmove :手指拖曳一個DOM元素。
   3. touchend :手指從一個DOM元素上移開。

   每個觸摸事件都包括了三個觸摸列表:

   1. touches :當前位於螢幕上的所有手指的一個列表。
   2. targetTouches :位於當前DOM元素上的手指的一個列表。
   3. changedTouches :涉及當前事件的手指的一個列表。

   例如,在一個touchend事件中,這就會是移開的手指。

   這些列表由包含了觸摸資訊的對象組成:

   1. identifier :一個數值,唯一標識觸摸會話(touch session)中的當前手指。
   2. target :DOM元素,是動作所針對的目標。
   3. 客戶/頁面/螢幕座標 :動作在螢幕上發生的位置。
   4. 半徑座標和 rotationAngle :畫出大約相當於手指形狀的橢圓形。

例如:
document.body.addEventListener(‘touchmove‘, function(event) { 
event.preventDefault(); 
}, false);

移動端滑動事件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.