@@ -4,26 +4,29 @@ export let createFingerMoveManager = ({ element }) => {
4
4
let getTouches = ( evt ) => {
5
5
return (
6
6
// browser API ?? jQuery
7
- evt . touches ?? evt . originalEvent . touches
7
+ evt . touches ?. [ 0 ] ?? evt . originalEvent ? .touches ?. [ 0 ] ?? evt
8
8
)
9
9
}
10
10
11
11
let xDown = 0
12
12
let yDown = 0
13
13
14
14
let handleTouchStart = ( evt ) => {
15
- let firstTouch = getTouches ( evt ) [ 0 ]
16
- xDown = firstTouch . clientX
17
- yDown = firstTouch . clientY
15
+ let touches = getTouches ( evt )
16
+
17
+ xDown = touches . clientX
18
+ yDown = touches . clientY
18
19
}
19
20
20
21
let handleTouchMove = ( evt ) => {
21
22
if ( ! xDown || ! yDown ) {
22
23
return
23
24
}
24
25
25
- let currentX = evt . touches [ 0 ] . clientX
26
- let currentY = evt . touches [ 0 ] . clientY
26
+ let touches = getTouches ( evt )
27
+
28
+ let currentX = touches . clientX
29
+ let currentY = touches . clientY
27
30
28
31
let dx = xDown - currentX
29
32
let dy = yDown - currentY
@@ -53,12 +56,34 @@ export let createFingerMoveManager = ({ element }) => {
53
56
yDown = currentY
54
57
}
55
58
59
+ let mouseIsDown = false
60
+ let handleMouseDown = ( ev : Event ) => {
61
+ mouseIsDown = true
62
+ handleTouchStart ( ev )
63
+ }
64
+
65
+ let handleMouseMove = ( ev ) => {
66
+ if ( mouseIsDown ) {
67
+ handleTouchMove ( ev )
68
+ }
69
+ }
70
+
71
+ let handleMouseUp = ( ) => {
72
+ mouseIsDown = false
73
+ }
74
+
56
75
element . addEventListener ( 'touchstart' , handleTouchStart , false )
57
76
element . addEventListener ( 'touchmove' , handleTouchMove , false )
77
+ element . addEventListener ( 'mousedown' , handleMouseDown , false )
78
+ element . addEventListener ( 'mousemove' , handleMouseMove , false )
79
+ element . addEventListener ( 'mouseup' , handleMouseUp , false )
58
80
59
81
let removeAll = ( ) => {
60
82
element . removeEventListener ( 'touchstart' , handleTouchStart , false )
61
83
element . removeEventListener ( 'touchmove' , handleTouchMove , false )
84
+ element . removeEventListener ( 'mousedown' , handleMouseDown , false )
85
+ element . removeEventListener ( 'mousemove' , handleMouseMove , false )
86
+ element . removeEventListener ( 'mouseup' , handleMouseUp , false )
62
87
}
63
88
64
89
let me = {
0 commit comments