本文是錯新技術頻道小編為大家帶來的鼠標拖拽移動子窗體的JS實現,其實鼠標拖拽的變化是很有技巧的,別著急,小編將帶大家細細了解,希望能幫到大家。
1.子窗體
在設計網站的時候,我們需要設計一些模態的子窗體,比如

這一步很容易實現,只需要div+css就ok了,請看代碼:
?
?
?
??????? .modal-window .head center
??????? {
??????????? padding-top: 2px;
??????? }
?
當然,模態窗體的大小在樣式類.modal-window中是固定寫好的了,這并不是說不可修改模態窗體的大小,比如我寫如代碼:
?
?
在第二行代碼中追加了.list-window這個樣式類來覆蓋.modal-window類中的大小和位置,但同時保證模態窗體居中顯示
?
可以看得出來,這一步的實現是非常簡單的,掌握幾個關鍵行的css屬性就"完虐"這個模態子窗體,各類其它的模態子窗體可以舉一反三咯。
2.當鼠標點住子窗體的頭部時,如何實現子窗體的拖拽移動呢?當引入jQ后,我們只需要很少的腳本就搞定這個小功能。不信我們看
?
?
①當鼠標在模態窗體頭部點下(mousedown)時,立即給document綁定mousemove和mouseup事件
②當鼠標沒有彈起時(沒有mouseup)時,若鼠標在窗體內移動時,激活mouseMove函數,通過計算鼠標移動的距離來及時整個窗體的位置移動。
③當鼠標彈起(mouseup)時,調用mouseUp事件,將document上綁定的mousemove事件和mouseup事件解除綁定。
整個過程的原理就是:當鼠標mousedown時,鼠標的移動事件轉移到document上來,通過鼠標在document上的移動事件來對整個窗體進行處理。
經過這一段代碼的分析,發現鼠標移動窗體乃至document上的任何元素都是相當easy的
比如,如果想要通過拖拽來改變窗體的大小,一樣我們只需要在mouseMove事件處理函數中調整窗體的大小就ok了,是不是又發現自己有多學會了一招,又精進了一小步呢?
學習了鼠標拖拽移動子窗體的JS實現介紹的知識后,相信大家都能在項目中獨立完成了,錯新技術頻道小編建議大家都要學起來哦。
新聞熱點
疑難解答
圖片精選