hammerjs移動(dòng)端的觸摸手勢(shì)js庫(kù)

簡(jiǎn)介

hammer.js是一個(gè)多點(diǎn)觸摸手勢(shì)庫(kù),能夠?yàn)榫W(wǎng)頁(yè)添加多點(diǎn)觸摸事件,免去自己監(jiān)聽(tīng)底層touchstart、touchmove、touchend事件。hammer.js不但支持觸摸事件的瀏覽器,在桌面瀏覽器也能將鼠標(biāo)點(diǎn)擊事件當(dāng)做觸摸,方便開發(fā)人員進(jìn)行調(diào)試。

特點(diǎn)

不需要依賴任何其他的框架,并且整個(gè)框架非常小。

事件架構(gòu)

hammer.js主要對(duì)觸屏的六大事件進(jìn)行監(jiān)聽(tīng)。

1.pan事件:在指定的dom區(qū)域內(nèi),一個(gè)手指放下并移動(dòng)時(shí)間,即觸屏中的拖動(dòng)事件。這個(gè)事件在觸屏中比較常用。該事件還可以對(duì)以下事件進(jìn)行監(jiān)聽(tīng)并處理:
panstart拖動(dòng)開始、panmove拖動(dòng)過(guò)程、panend拖動(dòng)結(jié)束、pancancel拖動(dòng)取消、panleft向左拖動(dòng)、panright向右拖動(dòng)、panup向上拖動(dòng)、pandown向下拖動(dòng)。
2.pinch事件:在指定區(qū)域內(nèi)兩個(gè)手指(默認(rèn))或多個(gè)手指相對(duì)移動(dòng)(越來(lái)越近)或相對(duì)移動(dòng)(越來(lái)越遠(yuǎn))事件。該事件分別對(duì)以下事件進(jìn)行監(jiān)聽(tīng):
pinchstart多點(diǎn)觸控開始、pinchmove多點(diǎn)觸控過(guò)程、pinchend多點(diǎn)觸控結(jié)束、pinchcancel多點(diǎn)觸控取消、pinchin多點(diǎn)觸控手指靠近、pinchout多點(diǎn)觸控手指越來(lái)越遠(yuǎn)。
3.press事件:在指定的dom區(qū)域內(nèi)按壓,該事件不能包含移動(dòng),最小按壓時(shí)間為500毫秒。常用于手機(jī)上的“復(fù)制、粘貼”等功能。該事件對(duì)以下事件進(jìn)行監(jiān)聽(tīng)處理:
pressup按壓事件離開時(shí)觸發(fā)
4.rotate事件:在指定的dom區(qū)域內(nèi),當(dāng)兩個(gè)手指或更多手指呈圓形旋轉(zhuǎn)的時(shí)候觸發(fā)。該事件對(duì)以下事件進(jìn)行監(jiān)聽(tīng):
rotatestart旋轉(zhuǎn)開始、rotatemove旋轉(zhuǎn)過(guò)程、rotateend旋轉(zhuǎn)結(jié)束、rotatecancel旋轉(zhuǎn)取消。
5.swipe事件:一個(gè)手指在屏幕上滑動(dòng),即滑動(dòng)事件。該事件對(duì)以下事件進(jìn)行監(jiān)聽(tīng):
Swipeleft:向左滑動(dòng)、Swiperight:向右滑動(dòng)、Swipeup:向上滑動(dòng)、Swipedown:向下滑動(dòng)。
6.tap事件:在指定dom事件區(qū)域內(nèi),一個(gè)手指輕拍或點(diǎn)擊時(shí)觸發(fā)該事件(類似PC端的click)。該事件最大點(diǎn)擊時(shí)間為250毫秒,如果超過(guò)250毫秒則按Press事件進(jìn)行處理。

注意點(diǎn)

tapclick在安卓系統(tǒng)上可以同時(shí)觸發(fā),但click事件會(huì)有幾百毫秒的延遲判斷是否是點(diǎn)擊事件,即tap事件先觸發(fā),過(guò)一段時(shí)間在觸發(fā)click事件。

使用方法

<script>
//創(chuàng)建一個(gè)新的hammer對(duì)象并且在初始化時(shí),指定要處理的dom元素
var hammertime=new Hammer(document.getElementById('test'))
//為該dom元素添加指定的事件,如觸屏移動(dòng)事件
hammertime.on('pan',function(e){
    console.log(e)
})
</script>

rotate,pinch需要手動(dòng)添加事件監(jiān)聽(tīng)程序。

//如
 var hammertime = new Hammer(document.getElementById("test"));
 hammertime.add(new Hammer.rotate());
 hammertime.on("rotate",function(){.......})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容