javascript實(shí)現(xiàn)拖動(dòng)層效果代碼(符合標(biāo)準(zhǔn)且兼容IE,chrome,firefox)
更新時(shí)間:2013年06月05日 00:40:51 作者:
javascript實(shí)現(xiàn)拖動(dòng)層,原理很簡(jiǎn)單,就是根據(jù)鼠標(biāo)的位置實(shí)時(shí)設(shè)置層的left和top
實(shí)例代碼一見(jiàn):
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#main div{position:absolute;width:220px;height:150px;border:1px solid #999;}
</style>
<script type="text/javascript">
var a;
document.onmouseup = function() {
if (!a) return;
a = "";
};
document.onmousemove = function(d) {
if (!a) return;
d=d||event;
a.style.left = (d.clientX - b) + "px";
a.style.top = (d.clientY - c) + "px";
};
function $(o, e) {
a = o;
b = e.clientX - parseInt(a.style.left);
c = e.clientY - parseInt(a.style.top);
}
</script>
</head>
<body>
<div id="main">
<div style="left:100px;top:100px;background:#fc9;" onmousedown="$(this,event)">1</div>
<div style="left:400px;top:100px;background:#9cf;" onmousedown="$(this,event)">2</div>
<div style="left:700px;top:100px;background:#f9c;" onmousedown="$(this,event)">3</div>
<div style="left:100px;top:300px;background:#9fc;" onmousedown="$(this,event)">4</div>
<div style="left:400px;top:300px;background:#c9f;" onmousedown="$(this,event)">5</div>
<div style="left:700px;top:300px;background:#cf9;" onmousedown="$(this,event)">6</div>
</div>
</body>
</html>
效果:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
實(shí)例代碼二見(jiàn):
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無(wú)標(biāo)題文檔</title>
<style type="text/css">
#test{width:200px; height:200px; background:pink; cursor:move; position:absolute; left:100px; top:100px}
</style>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
var obj=document.getElementById("test");
var b;
obj.onmousedown=function(e){
b=true;
var divLeft=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).left:obj.currentStyle.left);
var divTop=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).top:obj.currentStyle.top);
var e=e||event;
var divX=e.clientX-divLeft; //計(jì)算鼠標(biāo)和div邊框的距離
var divY=e.clientY-divTop;
document.onmousemove=function(e){
if(b){
var e=e||event; //兼容IE8及以下
obj.style.left=e.clientX-divX+"px";
obj.style.top=e.clientY-divY+"px";
}
}
}
document.onmouseup=function(){
b=false;
}
</script>
</body>
</html>
效果:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
實(shí)例代碼三見(jiàn)(拖動(dòng)把柄):
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#main div{position:absolute;width:220px;height:150px;border:1px solid #999;}
</style>
<script type="text/javascript">
var a;
document.onmouseup = function() {
if (!a) return;
a = "";
};
document.onmousemove = function(d) {
if (!a) return;
d=d||event;
a.style.left = (d.clientX - b) + "px";
a.style.top = (d.clientY - c) + "px";
};
function $(o, e) {
a = o;
b = e.clientX - parseInt(a.style.left);
c = e.clientY - parseInt(a.style.top);
}
</script>
</head>
<body>
<div id="main">
<div style="left:100px;top:100px;background:#fc9;" onmousedown="$(this,event)">1</div>
<div style="left:400px;top:100px;background:#9cf;" onmousedown="$(this,event)">2</div>
<div style="left:700px;top:100px;background:#f9c;" onmousedown="$(this,event)">3</div>
<div style="left:100px;top:300px;background:#9fc;" onmousedown="$(this,event)">4</div>
<div style="left:400px;top:300px;background:#c9f;" onmousedown="$(this,event)">5</div>
<div style="left:700px;top:300px;background:#cf9;" onmousedown="$(this,event)">6</div>
</div>
</body>
</html>
效果:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
實(shí)例代碼二見(jiàn):
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無(wú)標(biāo)題文檔</title>
<style type="text/css">
#test{width:200px; height:200px; background:pink; cursor:move; position:absolute; left:100px; top:100px}
</style>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
var obj=document.getElementById("test");
var b;
obj.onmousedown=function(e){
b=true;
var divLeft=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).left:obj.currentStyle.left);
var divTop=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).top:obj.currentStyle.top);
var e=e||event;
var divX=e.clientX-divLeft; //計(jì)算鼠標(biāo)和div邊框的距離
var divY=e.clientY-divTop;
document.onmousemove=function(e){
if(b){
var e=e||event; //兼容IE8及以下
obj.style.left=e.clientX-divX+"px";
obj.style.top=e.clientY-divY+"px";
}
}
}
document.onmouseup=function(){
b=false;
}
</script>
</body>
</html>
效果:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
實(shí)例代碼三見(jiàn)(拖動(dòng)把柄):
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
您可能感興趣的文章:
- js實(shí)現(xiàn)可拖動(dòng)DIV的方法
- js拖動(dòng)div 當(dāng)鼠標(biāo)移動(dòng)時(shí)整個(gè)div也相應(yīng)的移動(dòng)
- JavaScript實(shí)現(xiàn)可拖拽的拖動(dòng)層Div實(shí)例
- 利用javascript移動(dòng)div層-javascript 拖動(dòng)層
- html+javascript實(shí)現(xiàn)可拖動(dòng)可提交的彈出層對(duì)話框效果
- js之完全兼容ie與firefox的拖動(dòng)層代碼[測(cè)試好用]
- firefox瀏覽器下javascript 拖動(dòng)層效果與原理分析代碼
- js實(shí)現(xiàn)完美拖拽效果可拖動(dòng)層與回放拖動(dòng)規(guī)跡并顯示拖動(dòng)距離參數(shù)
- 一個(gè)很酷的拖動(dòng)層的js類(lèi),兼容IE及Firefox
- JavaScript拖動(dòng)層Div代碼
相關(guān)文章
Typescript的三種運(yùn)行方式(小結(jié))
這篇文章主要介紹了Typescript的三種運(yùn)行方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09詳解嵌套命名空間在TypeScript中如何應(yīng)用
命名空間是TypeScript中非常有用的概念,可以幫助我們組織和管理代碼,避免命名沖突,下面小編就來(lái)和大家聊聊嵌套命名空間在TypeScript中是如何應(yīng)用的吧2023-06-06使用clipboard.js庫(kù)實(shí)現(xiàn)復(fù)制剪切功能
這篇文章介紹了clipboard.js實(shí)現(xiàn)復(fù)制功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06微信小程序h5頁(yè)面跳轉(zhuǎn)小程序的超詳細(xì)講解
開(kāi)發(fā)中涉及到一個(gè)需求,就是從一個(gè)預(yù)約票購(gòu)買(mǎi)的頁(yè)面需要跳轉(zhuǎn)到?小程序,下面這篇文章主要給大家介紹了關(guān)于微信小程序h5頁(yè)面跳轉(zhuǎn)小程序的超詳細(xì)講解,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02微信小程序?qū)崿F(xiàn)選項(xiàng)卡的簡(jiǎn)單實(shí)例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)選項(xiàng)卡的簡(jiǎn)單實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07在實(shí)例中重學(xué)JavaScript事件循環(huán)
這篇文章主要介紹了在實(shí)例中重學(xué)JavaScript事件循環(huán),幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下2020-12-12