JS實現(xiàn)網(wǎng)頁Div層Clone拖拽效果
本文實例講述了JS實現(xiàn)網(wǎng)頁Div層Clone拖拽效果。分享給大家供大家參考。具體如下:
這是一個層拖動,網(wǎng)頁上的拖拽Clone效果實例,兩個層可在鼠標(biāo)的拖動下,任意改變位置,智能判斷層級,也就是智能判斷自身是否處于最高層,最高處的層是不會被其它層遮擋的。
運(yùn)行效果截圖如下:

在線演示地址如下:
http://demo.jb51.net/js/2015/js-draw-box-clone-style-codes/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>拖拽--Clone</title>
<style type="text/css">
body,div{margin:0;padding:0;}
body{background:#3e3e3e;}
div{position:absolute;width:100px;height:100px;cursor:move;border:1px solid #888;background:#000;}
#drag1{top:100px;left:100px;}
#drag2{top:100px;left:300px;}
#temp{opacity:0.3;filter:alpha(opacity=30);}
</style>
<script type="text/javascript">
var zIndex = 1;
window.onload = function ()
{
var oDrag1 = document.getElementById("drag1");
var oDrag2 = document.getElementById("drag2");
drag(oDrag1);
drag(oDrag2);
};
function drag(oDrag)
{
var disX = dixY = 0;
oDrag.onmousedown = function (event)
{
var event = event || window.event;
disX = event.clientX - this.offsetLeft;
disY = event.clientY - this.offsetTop;
var oTemp = document.createElement("div");
oTemp["id"] = "temp";
oTemp.style.left = this.currentStyle ? this.currentStyle["left"] : getComputedStyle(this, null)["left"];
oTemp.style.top = this.currentStyle ? this.currentStyle["top"] : getComputedStyle(this, null)["top"];
oTemp.style.zIndex = zIndex++;
document.body.appendChild(oTemp);
document.onmousemove = function (event)
{
var event = event || window.event;
var iL = event.clientX - disX;
var iT = event.clientY - disY;
var maxL = document.documentElement.clientWidth - oDrag.offsetWidth;
var maxT = document.documentElement.clientHeight - oDrag.offsetHeight
iL <= 0 && (iL = 0);
iT <= 0 && (iT = 0);
iL >= maxL && (iL = maxL);
iT >= maxT && (iT = maxT);
oTemp.style.left = iL + "px";
oTemp.style.top = iT + "px";
return false;
};
document.onmouseup = function ()
{
document.onmousemove = null;
document.onmouseup = null;
oDrag.style.left = oTemp.style.left;
oDrag.style.top = oTemp.style.top;
oDrag.style.zIndex = oTemp.style.zIndex;
document.body.removeChild(oTemp);
oDrag.releaseCapture && oDrag.releaseCapture()
};
this.setCapture && this.setCapture();
return false
}
}
</script>
</head>
<body>
<div id="drag1"></div>
<div id="drag2"></div>
</body>
</html>
希望本文所述對大家的JavaScript程序設(shè)計有所幫助。
相關(guān)文章
Bootstrap每天必學(xué)之標(biāo)簽頁(Tab)插件
Bootstrap每天必學(xué)之標(biāo)簽頁(Tab)插件,通過這個插件您可以把內(nèi)容放置在標(biāo)簽頁或者是膠囊式標(biāo)簽頁甚至是下拉菜單標(biāo)簽頁中,感興趣的小伙伴們可以參考一下2016-04-04
EditPlus中的正則表達(dá)式 實戰(zhàn)(4)
這篇文章主要介紹了 EditPlus中的正則表達(dá)式 實戰(zhàn)(4)的相關(guān)資料,需要的朋友可以參考下2016-12-12
用javascript為頁面添加天氣顯示實現(xiàn)思路及代碼
為頁面添加天氣顯示的方法有很多,在本文為大家介紹下使用js來輕松實現(xiàn),具體的代碼如下,感興趣的朋友不要錯過2013-12-12
js 數(shù)組 find,some,filter,reduce區(qū)別詳解
區(qū)分清楚Array中filter、find、some、reduce這幾個方法的區(qū)別,根據(jù)它們的使用場景更好的應(yīng)用在日常編碼中。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06

