JavaScript實現移動端拖動元素
阿新 • • 發佈:2020-11-26
本文例項為大家分享了JavaScript實現移動端拖動元素的具體程式碼,供大家參考,具體內容如下
實現效果:
請切換到移動端頁面檢視!
程式碼實現:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { background-color: #1cee89; } div { position: absolute; left: 0; width: 100px; height: 100px; background-color: #8294ff; border-radius: 20px; } </style> </head> <body> <div></div> <script> var div = document.querySelector('div'); var startX = 0; // 獲取手指初始座標 var startY = 0; var x = 0; // 獲得盒子原來的位置 var y = 0; // 手指觸控 div.addEventListener('touchstart',function(e) { // 獲取手指初始座標 startX = e.targetTouches[0].pageX; startY = e.targetTouches[0].pageY; x = this.offsetLeft; y = this.offsetTop; this.style.boxShadow = '0 0 15px rgba(0,.6)'; }); // 手指離開 div.addEventListener('touchend',function(e) { this.style.boxShadow = ''; }); // 手指按住移動 div.addEventListener('touchmove',function(e) { // 計算手指的移動距離:手指移動之後的座標減去手指初始的座標 var moveX = e.targetTouches[0].pageX - startX; var moveY = e.targetTouches[0].pageY - startY; // 移動盒子 盒子原來的位置 + 手指移動的距離 this.style.left = x + moveX + 'px'; this.style.top = y + moveY + 'px'; e.preventDefault(); // 阻止螢幕滾動的預設行為 }); </script> </body> </html>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。