JavaScript實現(xiàn)鼠標(biāo)控制自由移動的窗口
更新時間:2021年06月22日 10:23:15 作者:妄癡夢中
這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)鼠標(biāo)控制自由移動的窗口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JavaScript實現(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)按鍵被按下時發(fā)生; onmousemove:事件會在鼠標(biāo)指針移到指定的對象時發(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)按下時執(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)移動的時候調(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)
//計算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)松開時執(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)文章
Jjcarousellite 實現(xiàn)圖片列表滾動的簡單實例
這篇文章主要介紹了Jjcarousellite 實現(xiàn)圖片列表滾動的簡單實例,有需要的朋友可以參考一下2013-11-11
淺談js圖片前端預(yù)覽之filereader和window.URL.createObjectURL
下面小編就為大家?guī)硪黄獪\談js圖片前端預(yù)覽之filereader和window.URL.createObjectURL。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
JS實現(xiàn)頁面滾動到關(guān)閉時的位置與不滾動效果
這篇文章主要介紹了JS實現(xiàn)頁面滾動到關(guān)閉時的位置與不滾動效果,滾動有兩種方案,其一,利用路由中的meta,在離開頁面時緩存 top 信息,其二,利用keep-alive緩存整個頁面。但是僅限于沒有實時數(shù)據(jù)變動的頁面,需要的朋友可以參考下本文2022-06-06
通過Jscript中@cc_on 語句識別IE瀏覽器及版本的代碼
通過Jscript中@cc_on 語句識別IE瀏覽器及版本的代碼,需要的朋友可以參考下。2011-05-05

