您好,登錄后才能下訂單哦!
本篇內容主要講解“JavaScript怎么實現簡單拖拽效果”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript怎么實現簡單拖拽效果”吧!
本文實例為大家分享了JavaScript實現簡單拖拽效果的具體代碼,供大家參考,具體內容如下
先看實現的效果:
思路:里面用到了三個事件,鼠標按下、移動、松開事件
那么首先創建盒子并且給它賦予css樣式
HTML:
// html <div> <p>我是個藍色的盒子</p> </div>
CSS:
CSS *{margin: 0;padding: 0;} div{ width: 100px; height: 100px; background-color: cornflowerblue; position: absolute; } p{ width: 100px; height: 100px; line-height: 100px; font-size: 10px; color: #fff; text-align: center; transition: .5s all; } p:hover{ transform: translateY(-5px); transition: .5s all; box-shadow: 10px 10px 5px gray; }
然后在JS設置相應的方法
var div = document.querySelector('div'); var p = document.querySelector('p'); // 先定義初始化變量x、y var x =0; var y = 0; // var i = 3; var TorF= false; //盒子里的文字無法被選中 div.onselectstart = function (e) { return false; } div.addEventListener('mousedown',function(e){ // client:鼠標按鈕時輸出鼠標指針的坐標 x = e.clientX; y = e.clientY; // 格式:obj.offsetLeft:獲取左和上的偏移量 // 在這里特別說明一下:這個屬性是只讀的,不能夠賦值。 // 返回當前元素距離父元素(body)左邊的距離 // 這里的l,t并不是聲明了一個全局變量,而是創建了一個全局對象的屬性。 l = div.offsetLeft; t = div.offsetTop; // 鼠標設置移動箭頭 div.style.cursor = 'move'; p.innerHTML = '我被按下了 ^_^'; TorF= true; }); // 當整個屏幕觸發移動事件時 document.addEventListener('mousemove',function(e){ // 如果為false則終止函數的執行并返回函數的值 if (Torf == false) { return; } // 在此函數中定義局部變量 var twox = e.clientX; var twoy = e.clientY; // 用獲取到的鼠標指針的坐標 - (鼠標指針的坐標 - 偏移量) = 實際鼠標拖動的位置 // 后面一定要加上px單位,因為本身獲取是沒有單位的 var twol = twox - (x-l); var twot = twoy - (y-t); div.style.left = twol+'px'; div.style.top = twot+'px'; p.innerHTML = '我正在被拖動 -.-'; }); div.addEventListener('mouseup',function(){ // 松開鍵盤時停止鼠標移動事件 TorF= false; // 鼠標恢復默認樣式 div.style.cursor = 'default'; p.innerHTML = '我被彈開了QAQ'; })
注意:
1、想控制某一個盒子的位置,必須給盒子添加定位,否則盒子不會動
2、offsetLeft這個屬性是只讀的,不能夠賦值
3、鼠標位置的的計算:鼠標指針的坐標 - (鼠標指針的坐標 - 偏移量) = 實際鼠標拖動的位置
到此,相信大家對“JavaScript怎么實現簡單拖拽效果”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。