js初學者記錄利用滑鼠事件完成元素在頁面中的拖拽
給入乙個簡單div,設定樣式,完成div在頁面中的拖拽
>
divstyle
>
>
div>
第一種:極簡單版本,下面為js**
var div = document.
queryselector
("div");
//按下時開始監聽在文件中滑鼠移動的事件
div.
onmousedown
=function
(e1)
// 當釋放滑鼠鍵時,刪除滑鼠移動事件和刪除滑鼠釋放事件
document.
onmouseup
=function
(e)}
<
/script>
第二種:簡單版本
var div=document.
queryselector
("div");
var offsetx,offsety;
div.
addeventlistener
("mousedown"
,mousedownhandler)
;function
mousedownhandler
(e)function
mousemovehandler
(e)// 當釋放滑鼠鍵時,刪除滑鼠移動事件和刪除滑鼠釋放事件
function
mouseuphandler
(e)<
/script>
第三種:簡單公升級版
var div = document.
queryselector
("div");
var offsetx, offsety;
div.
addeventlistener
("mousedown"
, mousehandler)
;function
mousehandler
(e)else
if(e.type ===
"mousemove"
)else
if(e.type ===
"mouseup")}
<
/script>
第四種:中級版本 拖拽多個元素時
var divs = document.
queryselectorall
("div");
// 給每乙個div元素新增滑鼠按下事件
for(i =
0; i < divs.length; i++
)function
mousehandler
(e);
document.
addeventlistener
("mousemove"
, mousehandler)
; document.
addeventlistener
("mouseup"
, mousehandler);}
else
if(e.type ===
"mousemove"
)else
if(e.type ===
"mouseup")}
<
/script>
第五種:高階版本,把事件函式封裝在乙個物件裡面,使用時直接填入引數呼叫;下面**為封裝好的函式
var utils=
(function()
,dragoff
(elem)
,mousehandler
(e);
document.self=
this
.self;
document.
addeventlistener
("mousemove"
,this
.self.mousehandler)
; document.
addeventlistener
("mouseup"
,this
.self.mousehandler);}
else
if(e.type===
"mousemove"
)else
if(e.type===
"mouseup")}
}})(
);
執行時呼叫封裝好的函式填入引數即可
src=
"./js/utils.js"
>
script
>
給divs裡面給個div都呼叫一次封裝好的函式,這樣就可以拖拽每個div元素
var divs=document.
queryselectorall
("div");
for(
var i=
0;i)
第六種:終極版本,老師沒教。 js滑鼠拖拽事件
只記錄left,top同理。clientx 返回滑鼠相對於瀏覽器的水平座標 offsetleft 返回當前物件距離瀏覽器 父物件 的左側距離 offsetwidth 物件的可見寬度 onmousemove 滑鼠移動事件 連線點是滑鼠放在div上拖動時的位置 座標 不會改變的,起名字為unchangx...
JavaFX滑鼠拖拽事件
滑鼠拖拽進入node node.setonmousedragentered event 滑鼠拖拽退出node node.setonmousedragexited event 滑鼠拖拽經過node 入 出 node.setonmousedragover event 滑鼠拖拽釋放 node.setonm...
滑鼠拖拽div元素
上圖中綠色箭頭指向的分別是3個事件,大概的意思是 滑鼠單擊div box元素後,啟用了document.onmousemove滑鼠移動事件,在移動滑鼠時,會改變div box的left top值,從而達到div box元素隨著滑鼠移動。單滑鼠放開時觸發了document.onmouseup滑鼠鬆開事...