UNPKG

969 BJavaScriptView Raw
1export const tap = function(el, func, delay) {
2 var startTime = 0;
3 var moving = false;
4 var isTap = false;
5 var delayTime = delay || 500;
6 var startClientX = 0;
7 var startClientY = 0;
8
9 el.addEventListener('touchstart', function(e) {
10 startTime = e.timeStamp;
11 var touches = e.touches[0];
12 var startClientX = touches.clientX;
13 var startClientY = touches.clientY;
14 moving = true;
15 isTap = true;
16 });
17
18 el.addEventListener('touchmove', function(e) {
19 moving = true;
20 var touches = e.touches[0];
21 var clientX = touches.clientX;
22 var clientY = touches.clientY;
23
24 if (
25 Math.abs(startClientX - clientX) > 15 ||
26 Math.abs(startClientY - clientY) > 15
27 ) {
28 isTap = false;
29 }
30 });
31
32 el.addEventListener('touchend', function(e) {
33 var endTime = e.timeStamp;
34 if (moving && isTap && endTime - startTime < delayTime) {
35 func(e);
36 }
37 moving = false;
38 isTap = false;
39 startTime = 0;
40 });
41};