首先是三個(gè)事件蒜茴,分別是 mousedown
骡显,mousemove
疆栏,mouseup
當(dāng)鼠標(biāo)點(diǎn)擊按下的時(shí)候,需要一個(gè) tag 標(biāo)識(shí)此時(shí)已經(jīng)按下惫谤,可以執(zhí)行 mousemove 里面的具體方法壁顶。
clientX
,clientY
標(biāo)識(shí)的是鼠標(biāo)的坐標(biāo)溜歪,分別標(biāo)識(shí)橫坐標(biāo)和縱坐標(biāo)若专,并且我們用 offsetX
和 offsetY
來表示元素的元素的初始坐標(biāo),移動(dòng)的舉例應(yīng)該是:
鼠標(biāo)移動(dòng)時(shí)候的坐標(biāo)-鼠標(biāo)按下去時(shí)候的坐標(biāo)蝴猪。
也就是說定位信息為:
鼠標(biāo)移動(dòng)時(shí)候的坐標(biāo)-鼠標(biāo)按下去時(shí)候的坐標(biāo)+元素初始情況下的 offetLeft.
還有一點(diǎn)也是原理性的東西调衰,也就是拖拽的同時(shí)是絕對(duì)定位,我們改變的是絕對(duì)定位條件下的 left 以及 top 等等值自阱。
補(bǔ)充:也可以通過 html5 的拖放(Drag 和 drop)來實(shí)現(xiàn)