jQuerydiv元素拖動效果程式碼例項
本章節分享一段程式碼例項,它實現了元素的拖動效果。
程式碼非常的簡單,有這方面需求的朋友可以做一下參考。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> #Drigging { width:200px; background:#CCC; border:solid 1px #666; height:80px; line-height:80px; text-align:center; position:absolute; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(function(){ var bool=false; var offsetX=0; var offsetY=0; $("#Drigging").mouseover(function(){ $(this).css('cursor','move'); }) $("#Drigging").mousedown(function(event){ bool=true; offsetX = event.offsetX; offsetY = event.offsetY; $(this).css('cursor','move'); }).mouseup(function(){ bool=false; }) $(document).mousemove(function(event){ if(!bool) return; var x = event.clientX-offsetX; var y = event.clientY-offsetY; $("#Drigging").css("left", x); $("#Drigging").css("top", y); $("#Drigging").css('cursor','move'); }) }) </script> </head> <body> <div id="Drigging" style="float:left"></div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).$(function(){}),當文件結構完全載入完畢再去執行函式中的程式碼。
(2).var bool=false,設定一個識別符號,用來說明元素是否可以拖動。
(3).var offsetX=0,宣告一個變數並賦值為0,用法後面介紹。
(4).var offsetY=0,同上。
(5).$("#Drigging").mouseover(function(){
$(this).css('cursor','move');
}),為元素註冊mouseover事件處理函式,當滑鼠懸浮的時候滑鼠指標程式設計帶有四個箭頭的那種形狀。
(6).$("#Drigging").mousedown(function(){
bool=true;
offsetX = event.offsetX;
offsetY = event.offsetY;
$(this).css('cursor','move');
}),為元素註冊mousedown事件處理函式,也就是當滑鼠在元素中按下的時候觸發。
bool=true,將bool的值設定為true,也就是元素可以拖動。
(7).offsetX = event.offsetX,獲取事件觸發時候滑鼠指標在元素中的橫座標。
(8).offsetY = event.offsetY,和上面同理,獲取縱向座標。
(9).$(this).css('cursor','move'),設定滑鼠指標為帶有四個箭頭的那種形狀。
(10)..mouseup(function(){
bool=false;
}),註冊mouseup事件處理函式,也就是當滑鼠案件鬆開的時候,將bool設定為false,也就是不可拖動。
(11).$(document).mousemove(function(){}),為document物件註冊mousemove事件處理函式。
(12).if(!bool) return,如果bool為false,那麼直接跳出函式,也就是不可以拖動。
(13).var x = event.clientX-offsetX,獲取元素左邊緣距離瀏覽器客戶區左邊緣的尺寸。
(14).var y = event.clientY-offsetY,後去元素上邊緣距離瀏覽器客戶區上邊緣的尺寸。
(15).$("#Drigging").css("left", x);
$("#Drigging").css("top", y);
$("#Drigging").css('cursor','move');
設定相關的樣式,因為是絕對定位,所以就實現了拖動效果。
二.相關閱讀:
(1).mouseover事件可以參閱jQuery mouseover 事件一章節。
(2).css()方法可以參閱jQuery css()一章節。
(3).mousedown事件可以參閱jQuery mousedown 事件一章節。
(4).mouseup事件可以參閱jQuery mouseup 事件一章節。
(5).mousemove事件可以參閱jQuery mousemove 事件一章節。
(6).clientX可以參閱javascript clientX一章節。
(7).offsetX屬性可以參閱javascript offsetX一章節。
相關文章
- 移動端div塊拖動效果程式碼例項
- js實現的div拖動效果例項程式碼JS
- js元素上下移動效果程式碼例項JS
- js元素的震動效果程式碼例項JS
- js通過拖動調整元素位置程式碼例項JS
- 滑鼠按住拖動具有半透明效果的程式碼例項
- js物件導向封裝拖動效果程式碼例項JS物件封裝
- 可以拖動立方體3D效果程式碼例項3D
- 拖動滾動條實現div跟隨效果程式碼例項
- html5拖動上傳圖片效果程式碼例項HTML
- js實現的元素抖動效果程式碼例項JS
- js實現的dom元素拖動封裝外掛程式碼例項JS封裝
- 通過拖動實現調整元素之間位置程式碼例項
- 可以限定拖動範圍的彈出視窗效果程式碼例項
- 通過拖動將商品新增到購物車效果程式碼例項
- javascript元素迴圈插入效果程式碼例項JavaScript
- css多元素水平居中效果程式碼例項CSS
- SVG拖動繪製矩形程式碼例項SVG
- 可以拖動的div塊程式碼例項
- javascript元素內容漸現效果程式碼例項JavaScript
- 設定div元素漸隱效果程式碼例項
- canvas擺動效果程式碼例項Canvas
- 表格拖動滾動條標題固定程式碼例項
- 拖動滾動條載入資料程式碼例項
- javascript元素水平運動程式碼例項JavaScript
- javascript動態建立元素程式碼例項JavaScript
- javascript元素透明度漸變效果程式碼例項JavaScript
- javascript元素滑鼠跟隨效果程式碼例項詳解JavaScript
- javascript元素3D旋轉效果程式碼例項JavaScript3D
- 美化滾動條效果程式碼例項
- js動態連結<a>元素程式碼例項JS
- js動態建立HTML元素程式碼例項JSHTML
- jquery動態新增li元素程式碼例項jQuery
- 方向鍵控制元素移動程式碼例項
- javascript元素勻速運動程式碼例項JavaScript
- js實現的通過拖動調整元素間的相對位置程式碼例項JS
- 按住滑鼠可以拖動箭頭旋轉程式碼例項
- 滑鼠拖動實現將div放入方格例項程式碼