JavaScript實(shí)現(xiàn)鼠標(biāo)控制自由移動的窗口
更新時(shí)間:2021年06月22日 10:23:15 作者:妄癡夢中
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)鼠標(biāo)控制自由移動的窗口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)鼠標(biāo)控制自由窗口的具體代碼,供大家參考,具體內(nèi)容如下
代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用鼠標(biāo)移動的窗口</title> <style> .mainDiv { width: 350px; height: 200px; border: 2px black solid; position: absolute; } .titleDiv { width: 350px; height: 30px; background-color: YellowGreen ; text-align: center; line-height: 30px; } .contentDiv { width: 350px; height: 170px; background-color: SandyBrown ; text-align: center; } </style> </head> <body> <!--onmousedown:事件會在鼠標(biāo)按鍵被按下時(shí)發(fā)生; onmousemove:事件會在鼠標(biāo)指針移到指定的對象時(shí)發(fā)生--> <div class="mainDiv" id="mainDiv" style="top: 20px;left: 20px"> <div class="titleDiv" id="titleDiv" onmousedown="mouseDown()" onmouseup="mouseUp()"> 標(biāo)題欄 </div> <div class="contentDiv"> 《鼠標(biāo)可控的自由窗口》<br> 注意:沒有給mainDiv設(shè)置position為absolute前不能移動 </div> </div> <script> var dx; var dy; var mainDivObj = null; var titleDivObj = null; /** * 鼠標(biāo)按下函數(shù),當(dāng)鼠標(biāo)按下時(shí)執(zhí)行該函數(shù) */ function mouseDown() { //獲得鼠標(biāo)的鍵值,0是鼠標(biāo)左鍵;1是鼠標(biāo)滾軸鍵;2是鼠標(biāo)右鍵 if (event.button == 0) { mainDivObj = document.getElementById("mainDiv"); titleDivObj = document.getElementById("titleDiv"); //設(shè)置鼠標(biāo)樣式 titleDivObj.style.cursor = "move"; //設(shè)置主div的陰影樣式 mainDivObj.style.boxShadow = "0px 0px 10px #000"; //獲得鼠標(biāo)當(dāng)前坐標(biāo) let x = event.x; let y = event.y; dx = x - parseInt(mainDivObj.style.left); dy = y - parseInt(mainDivObj.style.top); } } //鼠標(biāo)移動的時(shí)候調(diào)用 document.onmousemove = mouseMove; /** * 按下鼠標(biāo)后移動函數(shù),當(dāng)鼠標(biāo)移動是執(zhí)行該函數(shù),移動div */ function mouseMove() { if (mainDivObj != null) { //獲得鼠標(biāo)當(dāng)前移動的坐標(biāo)位置 let x = event.x;//鼠標(biāo)移動的x軸的坐標(biāo) let y = event.y;//鼠標(biāo)移動的y軸的坐標(biāo) //計(jì)算div移動后的left與top的距離 //使用當(dāng)前坐標(biāo)減去鼠標(biāo)在div中的位置與div左邊與頂端的距離 let left = x - dx; let top = y - dy; //設(shè)置div新的坐標(biāo)位置 mainDivObj.style.left = left + "px"; mainDivObj.style.top = top + "px"; } } /** * 鼠標(biāo)松開函數(shù),當(dāng)鼠標(biāo)松開時(shí)執(zhí)行該函數(shù) */ function mouseUp() { if (mainDivObj != null) { dx = null; dy = null; //設(shè)置div的陰影樣式 mainDivObj.style.boxShadow="none"; mainDivObj = null; titleDivObj.style.cursor="pointer"; titleDivObj = null; } } </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序?qū)崿F(xiàn)全局狀態(tài)管理的方法整理
已知微信小程序中如果要做到全局狀態(tài)共享,常用的有四種方式,分別是globalData、本地緩存、mobx-miniprogram和westore,本文將帶大家看看mobx-miniprogram是如何實(shí)現(xiàn)的小程序的全局狀態(tài)管理,需要的可以收藏一下2023-06-06類似php的js數(shù)組的in_array函數(shù)自定義方法
PHP的數(shù)組函數(shù)in_array()非常方便,下面就為大家介紹下自定義類似php的js數(shù)組的in_array函數(shù),具體實(shí)現(xiàn)方法如下,感興趣的朋友可以參考下2013-12-12js實(shí)現(xiàn)課堂隨機(jī)點(diǎn)名系統(tǒng)
這篇文章主要介紹了js實(shí)現(xiàn)課堂隨機(jī)點(diǎn)名系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11基于bootstrap-datetimepicker.js不支持IE8的快速解決方法
下面小編就為大家?guī)硪黄赽ootstrap-datetimepicker.js不支持IE8的快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11