1. 程式人生 > 程式設計 >js實現適配移動端的拖動效果

js實現適配移動端的拖動效果

本文例項為大家分享了js實現適配移動端的拖動效果,供大家參考,具體內容如下

1.html

<div id="div1">
 <div id="div2"></div>
</div>

2.js

var flag = false;
var cur = {
 x: 0,y: 0
 }
 var nx,ny,dx,dy,x,y;
 
 function down() {
 flag = true;
 var touch;
 if(event.touches) {
 touch = event.touches[0];
  } else {
  touch = event;
 }
 cur.x = touch.clientX;
 cur.y = touch.clientY;
 dx = div2.offsetLeft;
 dy = div2.offsetTop;
 }
 
 function move() {
 if(flag) {
  var touch;
  if(event.touches) {
  touch = event.touches[0];
  } else {
  touch = event;
  }
  nx = touch.clientX - cur.x;
  ny = touch.clientY - cur.y;
  x = dx + nx;
  y = dy + ny;
  div2.style.left = x + "px";
  div2.style.top = y + "px";
  //阻止頁面的滑動預設事件
  document.addEventListener("touchmove",function() {
  event.preventDefault();
  },false);
 }
 }
 //滑鼠釋放時候的函式
 function end() {
 flag = false;
 }
 var div2 = document.getElementById("div2");
 div2.addEventListener("mousedown",function() {
 down();
 },false);
 div2.addEventListener("touchstart",false)
 div2.addEventListener("mousemove",function() {
 move();
 },false);
 div2.addEventListener("touchmove",false)
 document.body.addEventListener("mouseup",function() {
 end();
 },false);
 div2.addEventListener("touchend",function() {
 end();
},false);

效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。