拖拽效果在網頁中很常見。實現起來也不難。記錄一下今天實現的簡單效果。css
拖拽演示html
快速拖動時,會出現問題,之後修改.ide
說白了,就是3個點擊事件。ui
1. 按下鼠標左鍵, 觸發點擊事件,此時記錄下能夠獲得鼠標相對於拖動控件的位置(當前鼠標位置-控件位置);spa
2. 拖動鼠標,觸發移動事件,能夠計算出鼠標移動的距離(當前鼠標位置-以前算出的相對位置),也就是拖拽控件所移動的距離;.net
3. 鼠標擡起,結束拖動。xml
在JQ中,event.pageX event.pageY能夠獲取鼠標的位置,相對於文檔左上角。htm
如圖:blog
注意,在jq獲取控件的位置時:事件
x=event.pageX-parseInt($("#box").css("left"));
y=event.pageY-parseInt($("#box").css("top"));
要去掉單位px.
可是 在修改控件位置時,不要加單位,也不要加引號,也不用加單位px!
dx=event.pageX-x;
dy=event.pageY-y;
//不要加引號!!!
$("#box").css({
"top":dy,"left":dx
})
完整代碼: