JS滑鼠事件完成元素拖拽(簡單 高階)

2021-10-13 12:56:40 字數 2692 閱讀 4693

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滑鼠鬆開事...