PC端点击空白处也可以拖拽是不是有问题?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <meta http-equiv= "X-UA-Compatible" content= "IE=edge" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>Document</title> <style> div { width: 100px; height: 100px; background-color: red; } </style> </head> <body> <div id= "box" ></div> </body> <script> const box = document.getElementById( 'box' ); const drag = (ele) => { const startPoint = {}; const movePoint = {}; const currentPoint = { x: 0, y: 0 } document.addEventListener( 'pointerdown' , startP, false ) ele.addEventListener( 'touchstart' , (e) => { e.preventDefault() }, false ) function startP(e){ startPoint.x = e.pageX; startPoint.y = e.pageY; document.addEventListener( 'pointermove' , moveP, false ) document.addEventListener( 'pointerup' , upP, false ) document.addEventListener( 'pointercancel' , upP, false ) } function moveP(e){ movePoint.x = currentPoint.x + e.pageX - startPoint.x; movePoint.y = currentPoint.y + e.pageY - startPoint.y; ele.style.transform = `translate3d(${movePoint.x}px,${movePoint.y}px,0)` e.preventDefault() } function upP(e){ currentPoint.x = movePoint.x; currentPoint.y = movePoint.y; document.removeEventListener( 'pointermove' , moveP, false ) document.removeEventListener( 'pointerup' , upP, false ) document.removeEventListener( 'pointercancel' , upP, false ) } } drag(box); </script> </html> |
老师你好,点击空白处也可以拖拽,是不是代码哪里错了
13
收起
正在回答
1回答
同学你好,监听元素的问题,将按下事件绑定在box元素上,点击空白处就不会拖拽了
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧