@@ -4,26 +4,29 @@ export let createFingerMoveManager = ({ element }) => {
44 let getTouches = ( evt ) => {
55 return (
66 // browser API ?? jQuery
7- evt . touches ?? evt . originalEvent . touches
7+ evt . touches ?. [ 0 ] ?? evt . originalEvent ? .touches ?. [ 0 ] ?? evt
88 )
99 }
1010
1111 let xDown = 0
1212 let yDown = 0
1313
1414 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
1819 }
1920
2021 let handleTouchMove = ( evt ) => {
2122 if ( ! xDown || ! yDown ) {
2223 return
2324 }
2425
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
2730
2831 let dx = xDown - currentX
2932 let dy = yDown - currentY
@@ -53,12 +56,34 @@ export let createFingerMoveManager = ({ element }) => {
5356 yDown = currentY
5457 }
5558
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+
5675 element . addEventListener ( 'touchstart' , handleTouchStart , false )
5776 element . addEventListener ( 'touchmove' , handleTouchMove , false )
77+ element . addEventListener ( 'mousedown' , handleMouseDown , false )
78+ element . addEventListener ( 'mousemove' , handleMouseMove , false )
79+ element . addEventListener ( 'mouseup' , handleMouseUp , false )
5880
5981 let removeAll = ( ) => {
6082 element . removeEventListener ( 'touchstart' , handleTouchStart , false )
6183 element . removeEventListener ( 'touchmove' , handleTouchMove , false )
84+ element . removeEventListener ( 'mousedown' , handleMouseDown , false )
85+ element . removeEventListener ( 'mousemove' , handleMouseMove , false )
86+ element . removeEventListener ( 'mouseup' , handleMouseUp , false )
6287 }
6388
6489 let me = {
0 commit comments