JS實(shí)現(xiàn)鼠標(biāo)按下拖拽效果
原生JS實(shí)現(xiàn)鼠標(biāo)按下拖拽效果,供大家參考,具體內(nèi)容如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>鼠標(biāo)拖動(dòng)</title>
<style type="text/css">
body {
margin: 0;
}
div {
width: 200px;
height: 200px;
position: absolute;
background-color: pink;
}
</style>
</head>
<body>
<div onmousedown="downDiv(this)" onmousemove="moveDiv(this)" onmouseup="upDiv(this)">
</div>
<script>
//定義變量?jī)?chǔ)存div的寬高
var obj_w, obj_h;
//定義一個(gè)變量判斷是否執(zhí)行移動(dòng)函數(shù)
var mouseDown = false;
//鼠標(biāo)按下函數(shù)
function downDiv(obj) {
//獲取div的寬高
obj_w = obj.offsetWidth;
obj_h = obj.offsetHeight;
//鼠標(biāo)
var e = event || window.event;
//e.clientX/Y 是獲取鼠標(biāo)相對(duì)瀏覽器的位置;將div中心自動(dòng)居中到鼠標(biāo)
obj.style.left = (e.clientX - obj_w / 2) + "px";
obj.style.top = (e.clientY - obj_h / 2) + "px";
console.log(obj.style.left, obj.style.top)
//按下時(shí)為ture,松開(kāi)時(shí)為false,以判斷是否執(zhí)行執(zhí)行mouveDiv
mouseDown = true;
}
//鼠標(biāo)移動(dòng)函數(shù)
function moveDiv(obj) {
obj_w = obj.offsetWidth;
obj_h = obj.offsetHeight;
var e = event || window.event;
console.log(e.clientX, e.clientY);
console.log(obj_w, obj_h);
if (mouseDown) {
obj.style.left = (e.clientX - obj_w / 2) + "px";
obj.style.top = (e.clientY - obj_h / 2) + "px";
console.log(obj.style.left, obj.style.top)
}
}
//鼠標(biāo)松開(kāi)函數(shù)
function upDiv(obj) {
mouseDown = false;
}
</script>
</body>
</html>
更多精彩文章請(qǐng)點(diǎn)擊專題: Javascript拖拽特效匯總
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript面向?qū)ο蟀b類Class封裝類庫(kù)剖析
- Javascript 面向?qū)ο螅ǘ┓庋b代碼
- Javascript 面向?qū)ο缶幊蹋ㄒ唬?封裝
- JS面向?qū)ο缶幊虒?shí)現(xiàn)的拖拽功能案例詳解
- JS基于面向?qū)ο髮?shí)現(xiàn)的拖拽功能示例
- jquery方法+js一般方法+js面向?qū)ο蠓椒▽?shí)現(xiàn)拖拽效果
- JavaScript鼠標(biāo)拖拽事件詳解
- 純 JS 實(shí)現(xiàn)放大縮小拖拽功能(完整代碼)
- JavaScript實(shí)現(xiàn)圖片的放大縮小及拖拽功能示例
- 詳解JavaScript面向?qū)ο髮?shí)戰(zhàn)之封裝拖拽對(duì)象
相關(guān)文章
JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情代碼實(shí)例
這篇文章主要介紹了JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情,通過(guò)js代碼if語(yǔ)句進(jìn)行判斷,并結(jié)合自己開(kāi)發(fā)的情景,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08
一文詳解Promise.race()方法功能及應(yīng)用場(chǎng)景
這篇文章主要為大家介紹了Promise.race()方法功能及應(yīng)用場(chǎng)景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
bootstrapValidator bootstrap-select驗(yàn)證不可用的解決辦法
這篇文章主要為大家詳細(xì)介紹了bootStrapValidator和bootStrap-select驗(yàn)證不可用的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
js導(dǎo)入導(dǎo)出excel(實(shí)例代碼)
這篇文章主要是對(duì)js導(dǎo)入導(dǎo)出excel的實(shí)例代碼進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
javascript設(shè)計(jì)模式 – 原型模式原理與應(yīng)用實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 原型模式,結(jié)合實(shí)例形式分析了javascript原型模式相關(guān)概念、原理、應(yīng)用場(chǎng)景及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
JavaScript異步編程的干貨知識(shí)點(diǎn)分享
異步是什么意思?如何實(shí)現(xiàn)異步編程?不同的異步模式有哪些?本文將圍繞這些問(wèn)題和大家分享JavaScript異步編程中的重要知識(shí)點(diǎn),需要的可以學(xué)習(xí)一下2023-06-06

