生活随笔
收集整理的這篇文章主要介紹了
【JavaScript】关于手机中的触摸手势操作实现过程详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這里實現(xiàn)觸摸手勢操作的有四個基本方向:上,下,左,右,用javascript語言編寫,可以參考下
筆者TA遠(yuǎn)方在一個文件名為gesture.js寫了, 定義觸摸操作中的所有手勢,一共8個總方向,包括四個基本方向,還有一個點擊,代碼如下
const G = {left
: 'LEFT',right
: 'RIGHT',down
: 'DOWN',up
: 'UP',click
: 'CLICK',leftAndUp
: 'LEFT_UP',leftAndDown
: 'LEFT_DOWN',rightAndUp
: 'RIGHT_UP',rightAndDown
: 'RIGHT_DOWN',
}
觸摸操作中,除了點擊,常見的是通過計算兩點不同的位置,一個是觸摸開始點a,另一個是觸摸結(jié)束點b,就能算出手勢操作,實現(xiàn)方法getG如下
const getG = (g) => {const { a
, b
} = g
;if (a
!=null && b
!=null){const offX
= a
.x
-b
.x
;const offY
= a
.y
-b
.y
;const absX
= Math
.abs(offX
);const absY
= Math
.abs(offY
);if (absX
< absY
) {if (a
.y
> b
.y
) {return G.up
;} else {return G.down
;}} else if (absX
> absY
) {if (a
.x
> b
.x
) {return G.left
;} else {return G.right
;}} else {if (absX
!=0){if (offX
>0) {if (offY
>0) {return G.leftAndUp
;} else {return G.leftAndDown
;}} else {if (offY
>0) {return G.rightAndUp
;} else {return G.rightAndDown
;}}}}}return G.click
;
}
最后講下使用例子,在小程序中的canvas組件中使用觸摸事件,實現(xiàn)手勢的控制操作,代碼如下
import Gesture
from '@/common/js/gesture.js';
App({data
: {gestures
: {},},onTouchStart(event){this.gestures
.a
= event
.touches
[0];},onTouchMove(event){this.gestures
.b
= event
.touches
[0];},onTouchEnd(){const g
= Gesture
.getG(this.gestures
);this.ctrlMove(g
);this.gestures
= {};},ctrlMove(g){const Ges
= Gesture
.G;switch(g
){case Ges
.left
:break;}}
})
總結(jié)
以上是生活随笔為你收集整理的【JavaScript】关于手机中的触摸手势操作实现过程详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。