前面我們介紹了移動端的觸摸事件,其中有touchstar、touchmove、touchend、touchcancel,同時(shí)還有相關(guān)三個(gè)用于跟蹤觸摸屬性,分別為touches、targetTouchs、changeTouches,因?yàn)橛|摸事件和手勢事件兩者是相輔相成的,若對觸摸事件不太熟悉,可以點(diǎn)擊《觸摸事件中touchstar、touchmove、touchend、touchcancel事件應(yīng)用方法及實(shí)例》再看下.接下由南昌網(wǎng)站制作公司百恒網(wǎng)絡(luò)前端開發(fā)工程師向大介紹在移動端的手勢事件。
? ? ? 只有兩個(gè)手指都觸摸到事件的接收容器時(shí)才會觸發(fā)這些事件。在一個(gè)元素上設(shè)置事件處理程序,意 味著兩個(gè)手指必須同時(shí)位于該元素的范圍之內(nèi),才能觸發(fā)手勢事件(這個(gè)元素就是目標(biāo))。由于這些事 件冒泡,所以將事件處理程序放在文檔上也可以處理所有手勢事件。此時(shí),事件的目標(biāo)就是兩個(gè)手指都 位于其范圍內(nèi)的那個(gè)元素。?
? ? ? ?觸摸事件和手勢事件之間存在某種關(guān)系。當(dāng)一個(gè)手指放在屏幕上時(shí),會觸發(fā) touchstart 事件。如 果另一個(gè)手指又放在了屏幕上,則會先觸發(fā) gesturestart 事件,隨后觸發(fā)基于該手指的 touchstart 事件。如果一個(gè)或兩個(gè)手指在屏幕上滑動,將會觸發(fā) gesturechange 事件。但只要有一個(gè)手指移開, 就會觸發(fā) gestureend 事件,緊接著又會觸發(fā)基于該手指的 touchend 事件。?
? ? ? ?與觸摸事件一樣,每個(gè)手勢事件的 event 對象都包含著標(biāo)準(zhǔn)的鼠標(biāo)事件屬性:bubbles、 cancelable、view、clientX、clientY、screenX、screenY、detail、altKey、shiftKey、 ctrlKey 和 metaKey。此外,還包含兩個(gè)額外的屬性:rotation 和 scale。其中,rotation 屬性表 示手指變化引起的旋轉(zhuǎn)角度,負(fù)值表示逆時(shí)針旋轉(zhuǎn),正值表示順時(shí)針旋轉(zhuǎn)(該值從 0開始)。而 scale 屬性表示兩個(gè)手指間距離的變化情況(例如向內(nèi)收縮會縮短距離);這個(gè)值從 1 開始,并隨距離拉大而 增長,隨距離縮短而減小。 下面是使用手勢事件的一個(gè)示例。?
? ? ? ?
? ? ? ?
Touch anywhere on the screen with two fingers. This only works on an iPhone or iPod Touch running iPhone 2.x software.
? ? ? ?與前面演示觸摸事件的例子一樣,這里的代碼只是將每個(gè)事件都關(guān)聯(lián)到同一個(gè)函數(shù)中,然后通過該 函數(shù)輸出每個(gè)事件的相關(guān)信息。?
? ? ? ?觸摸事件也會返回 rotation 和 scale 屬性,但這兩個(gè)屬性只會在兩個(gè)手指與 屏幕保持接觸時(shí)才會發(fā)生變化。一般來說,使用基于兩個(gè)手指的手勢事件,要比管理 觸摸事件中的所有交互要容易得多。?
? 本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對廣大技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò)http://m.iotmicrosoft.com/如轉(zhuǎn)載請注明出處!