- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- JavaScript實(shí)現鼠標控制自由移動(dòng)的窗口
本文實(shí)例為大家分享了JavaScript實(shí)現鼠標控制自由窗口的具體代碼,供大家參考,具體內容如下
代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用鼠標移動(dòng)的窗口</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:事件會(huì )在鼠標按鍵被按下時(shí)發(fā)生; onmousemove:事件會(huì )在鼠標指針移到指定的對象時(shí)發(fā)生--> <div class="mainDiv" id="mainDiv" style="top: 20px;left: 20px"> <div class="titleDiv" id="titleDiv" onmousedown="mouseDown()" onmouseup="mouseUp()"> 標題欄 </div> <div class="contentDiv"> 《鼠標可控的自由窗口》<br> 注意:沒(méi)有給mainDiv設置position為absolute前不能移動(dòng) </div> </div> <script> var dx; var dy; var mainDivObj = null; var titleDivObj = null; /** * 鼠標按下函數,當鼠標按下時(shí)執行該函數 */ function mouseDown() { //獲得鼠標的鍵值,0是鼠標左鍵;1是鼠標滾軸鍵;2是鼠標右鍵 if (event.button == 0) { mainDivObj = document.getElementById("mainDiv"); titleDivObj = document.getElementById("titleDiv"); //設置鼠標樣式 titleDivObj.style.cursor = "move"; //設置主div的陰影樣式 mainDivObj.style.boxShadow = "0px 0px 10px #000"; //獲得鼠標當前坐標 let x = event.x; let y = event.y; dx = x - parseInt(mainDivObj.style.left); dy = y - parseInt(mainDivObj.style.top); } } //鼠標移動(dòng)的時(shí)候調用 document.onmousemove = mouseMove; /** * 按下鼠標后移動(dòng)函數,當鼠標移動(dòng)是執行該函數,移動(dòng)div */ function mouseMove() { if (mainDivObj != null) { //獲得鼠標當前移動(dòng)的坐標位置 let x = event.x;//鼠標移動(dòng)的x軸的坐標 let y = event.y;//鼠標移動(dòng)的y軸的坐標 //計算div移動(dòng)后的left與top的距離 //使用當前坐標減去鼠標在div中的位置與div左邊與頂端的距離 let left = x - dx; let top = y - dy; //設置div新的坐標位置 mainDivObj.style.left = left + "px"; mainDivObj.style.top = top + "px"; } } /** * 鼠標松開(kāi)函數,當鼠標松開(kāi)時(shí)執行該函數 */ function mouseUp() { if (mainDivObj != null) { dx = null; dy = null; //設置div的陰影樣式 mainDivObj.style.boxShadow="none"; mainDivObj = null; titleDivObj.style.cursor="pointer"; titleDivObj = null; } } </script> </body> </html>
以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站