一直以來,都對(duì)JS獲取元素的位置感到非常的困惑:一會(huì)client、一會(huì)offset、一會(huì)scroll。
再加上各大瀏覽器之間的不兼容,唉,搞得哥暈暈乎乎的。
而很多頁面效果都要用到這些位置。不得已,得練練,得記記。
下面就來說說這個(gè)基于 JQuery的簡易拖拽插件吧。
按慣例,先說說拖拽的原理,以及搞這么一個(gè)東東的步驟:
那什么是拖拽呢? 看名字就知道了:就是把一個(gè)東東拖來拽去的。 放到我們的DOM上,就是改變它的位置。
它只有兩個(gè)難點(diǎn):1、如何知道是在拖? 2、如何知道從哪拖,拖到哪?
其實(shí),這也算不上難點(diǎn),畢竟兩者都是基礎(chǔ)的東西,關(guān)鍵在于熟練。
換到j(luò)s 中,我們搞一個(gè)拖拽效果,大致有如下步驟:
1、讓元素捕獲事件(一般情況下,無非就是mousedown、mousemove、mouseup)
2、在mousedown時(shí),標(biāo)記開始拖拽,并獲取元素及鼠標(biāo)的位置。
3、在mousemove時(shí),不斷的獲取鼠標(biāo)的新位置,并通過相應(yīng)的位置算法,來重新定位元素位置。
4、在mouseup時(shí),結(jié)束拖拽。。。然后周而復(fù)始。
這中間,個(gè)需要注意的地方:被拖拽的元素,至少需要相對(duì)或絕對(duì)定位,否則拖拽不會(huì)有效果。
OK,不多說,無代碼,無真相。相應(yīng)的解釋都在其中了:
猛擊下載: