1. 程式人生 > 程式設計 >jquery實現簡單拖拽效果

jquery實現簡單拖拽效果

本文例項為大家分享了jquery實現簡單拖拽的具體程式碼,供大家參考,具體內容如下

基本思路:

1.首先需要滑鼠按下拖動區域,也就是需要呼叫 mousedown 方法

2.滑鼠移動,需要拖動的元素跟著滑鼠移動,呼叫 mousemove 方法

3.滑鼠彈起拖動消失,呼叫 mouseup 方法

下面看一下程式碼:

頁面結構:

jquery實現簡單拖拽效果

樣式:

.drag {
  width: 200px;
  height: 200px;
  background-color: skyblue;
  position: absolute;
}

效果圖:

jquery實現簡單拖拽效果

邏輯程式碼:

// 拖拽函式
function function_drag(ele) {
 $(ele).mousedown(function(e){
 // 獲取滑鼠離元素(0,0)位置的距離
 var positionDiv = $(this).offset(); //offset 元素的偏移座標 有兩個屬性:top left(對顯示的元素有用)
 var distenceX = e.pageX - positionDiv.left; //page 顯示滑鼠指標的位置  (此時相當於,滑鼠按下的初始值)
 var distenceY = e.pageY - positionDiv.top; //
 
 // 滑鼠移動
 $(document).mousemove(function(e){
  // 獲取滑鼠的位移(滑鼠此時的page值 - 滑鼠按下時的初始值 = 元素的移動值)
  var x = e.pageX - distenceX;
  var y = e.pageY - distenceY;
  if(x<0){
  x=0;
  }else if(x>$(document).width()-$(ele).outerWidth(true)){
  x = $(document).width()-$(ele).outerWidth(true);
  }
  if(y<0){
   y=0;
  }else if(y>$(document).height()-$(ele).outerHeight(true)){
   y = $(document).height()-$(ele).outerHeight(true);
  }
  $(ele).css({
  'left':x+'px','top':y+'px'
  })
 })
 
 // 滑鼠抬起
 $(document).mouseup(function(e){
  $(document).off('mousemove');
 })
 })
} 
function_drag('.drag'); 

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