隨著移動端設(shè)備的普及和發(fā)展,web前端開發(fā)中的touch和gesture模塊被更多的采用和重視。在JS中,touch和gesture事件是專門為移動設(shè)備設(shè)計的,它們可以使web應(yīng)用程序?qū)τ脩舻挠|摸操作做出反應(yīng),實現(xiàn)更加友好的交互體驗。下面將為大家介紹JS中的touch事件以及gesture事件。
touch事件是用來響應(yīng)用戶在觸摸設(shè)備上的手指操作的事件。比如在移動端web應(yīng)用中的按鈕點擊,頁面的滑動,以及實現(xiàn)手勢等等。一般來說,touch事件有三種常用的狀態(tài)屬性:touchstart、touchmove和touchend。分別表示用戶的手指剛開始接觸屏幕,手指開始在屏幕上滑動,和用戶手指離開屏幕。
<code> //demo1: touchstart, touchmove, touchend document.addEventListener('touchstart', touchstartHandler); document.addEventListener('touchmove', touchmoveHandler); document.addEventListener('touchend', touchendHandler); function touchstartHandler(e) { console.log(e.touches); } function touchmoveHandler(e) { console.log(e.changedTouches); } function touchendHandler(e) { console.log(e.targetTouches); } </code>
gesture事件和touch事件非常相似,但是gesture事件較為復(fù)雜,常用于完成雙指操作。在JS中,一般來說gesture事件也有三種常用的狀態(tài)屬性:gesturestart、gesturechange和gestureend。分別表示用戶剛剛開始手指接觸屏幕時,手指開始在屏幕上滑動時以及手指移動時,和用戶手指離開屏幕時。
<code> //demo2: gesturestart, gesturechange, gestureend document.addEventListener('gesturestart', gesturestartHandler); document.addEventListener('gesturechange', gesturechangeHandler); document.addEventListener('gestureend', gestureendHandler); function gesturestartHandler(e) { console.log(e.scale); } function gesturechangeHandler(e) { console.log(e.rotation); } function gestureendHandler(e) { console.log(e.targetGesture); } </code>
在使用touch和gesture事件時,也經(jīng)常用到event對象和target屬性。event對象可以獲取用戶的觸摸信息,在實現(xiàn)手勢和滑動等時非常的必要。target屬性可以獲取用戶的點擊位置,從而實現(xiàn)一些比較復(fù)雜的交互操作。
總之,在移動端web開發(fā)中,touch事件和gesture事件的應(yīng)用是可以讓用戶體驗得到很大的提升的。希望各位開發(fā)者在開發(fā)和設(shè)計中能夠靈活運(yùn)用,提供優(yōu)秀的web應(yīng)用。