一個(gè)很酷的拖動(dòng)層的js類(lèi),兼容IE及Firefox
自己優(yōu)化修改了網(wǎng)上的一個(gè)JS拖動(dòng)類(lèi),增加了拖動(dòng)時(shí)顯示半透明的特效。 http://chabaoo.cn/article/16122.htm
注意,本文類(lèi)中的Cminfo類(lèi)請(qǐng) 查看:
http://chabaoo.cn/article/18760.htm
//*********************************移動(dòng)層 函數(shù) 開(kāi)始*******************************************
//生成拖動(dòng)層很簡(jiǎn)單,只需要(參數(shù)之一如果是數(shù)組表示局部拖動(dòng),arr[0]表示拖動(dòng)層,arr[1]表示整體)
//new divDrag(['test'], [getObject('test31'),getObject('test3')], getObject('test1') ,getObject('test2') ,[getObject('test41'),getObject('test4')]);
//記得有拖動(dòng)屬性的層position:absolute;
Array.prototype.extend = function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;}
function divDrag()
{
var A,B,gCn;
var zIndex = 1;
this.dragStart = function(e)
{
e = e||window.event;
if((e.which && (e.which!=1))||(e.button && (e.button!=1))){return;}
var pos = this.gPos;
gCn = this.parent||this;
if(document.defaultView)
{
_top = document.defaultView.getComputedStyle(gCn,null).getPropertyValue("top");
_left = document.defaultView.getComputedStyle(gCn,null).getPropertyValue("left");
}
else
{
if(gCn.currentStyle)
{
_top = gCn.currentStyle["top"];
_left = gCn.currentStyle["left"];
}
}
pos.ox = (e.pageX||(e.clientX+document.documentElement.scrollLeft))-parseInt(_left);
pos.oy = (e.pageY||(e.clientY+document.documentElement.scrollTop))-parseInt(_top);
if(!!A)
{
if(document.removeEventListener)
{
document.removeEventListener("mousemove",A,false);
document.removeEventListener("mouseup",B,false);
}
else
{
document.detachEvent("onmousemove",A);
document.detachEvent("onmouseup",B);
}
}
A = this.dragMove.create(this);
B = this.dragEnd.create(this);
if(document.addEventListener)
{
document.addEventListener("mousemove",A,false);
document.addEventListener("mouseup",B,false);
}
else
{
document.attachEvent("onmousemove",A);
document.attachEvent("onmouseup",B);
}
gCn.style.zIndex = (++zIndex);
}
this.dragMove = function(e)
{
e = e||window.event;
var pos = this.gPos;
gCn = this.parent||this;
gCn.style.top = (e.pageY||(e.clientY+document.documentElement.scrollTop))-parseInt(pos.oy)+'px';
gCn.style.left = (e.pageX||(e.clientX+document.documentElement.scrollLeft))-parseInt(pos.ox)+'px';
try{if(CMInfo.Bs_Name=='IE'){gCn.style.filter = "alpha(opacity=70)";}else{gCn.style.opacity = "0.7";}}catch(e){}
this.stop(e);
}
this.dragEnd = function(e)
{
var pos = this.gPos;
e = e||window.event;
if((e.which && (e.which!=1))||(e.button && (e.button!=1))){return};
gCn = this.parent||this;
if(!!(this.parent)){this.style.backgroundColor = pos.color;}
try{if(CMInfo.Bs_Name=='IE'){gCn.style.filter = "alpha(opacity=100)";}else{gCn.style.opacity = 1;}}catch(e){}
if(document.removeEventListener)
{
document.removeEventListener("mousemove",A,false);
document.removeEventListener("mouseup",B,false);
}
else
{
document.detachEvent("onmousemove",A);
document.detachEvent("onmouseup",B);
}
A = null;
B = null;
gCn.style.zIndex = (++zIndex);
this.stop(e);
}
this.shiftColor = function()
{
this.style.backgroundColor="#EEEEEE";
}
this.position = function (e)
{
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
{
t += e.offsetTop;
l += e.offsetLeft;
}
return {x:l,y:t,ox:0,oy:0,color:null}
}
this.stop = function(e)
{
if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}
if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}
}
this.create = function(bind)
{
var B = this;
var A = bind;
return function(e){return B.apply(A,[e]);}
}
this.dragStart.create = this.create;
this.dragMove.create = this.create;
this.dragEnd.create = this.create;
this.shiftColor.create = this.create;
this.initialize = function()
{
for(var A=0,B=arguments.length;A<B;A++)
{
C=arguments[A];
if(!(C.push)){C = [C];}
gC = (typeof(C[0])=='object')?C[0]:(typeof(C[0])=='string'?getObject(C[0]):null);
if(!gC){continue};
gC.gPos = this.position(gC);
gC.dragMove = this.dragMove;
gC.dragEnd = this.dragEnd;
gC.stop = this.stop;
if(!!C[1])
{
gC.parent = C[1];
gC.gPos.color = gC.style.backgroundColor;
}
if(gC.addEventListener)
{
gC.addEventListener("mousedown",this.dragStart.create(gC),false);
if(!!C[1]){gC.addEventListener("mousedown",this.shiftColor.create(gC),false); }
}
else
{
gC.attachEvent("onmousedown",this.dragStart.create(gC));
if(!!C[1]){gC.attachEvent("onmousedown",this.shiftColor.create(gC));}
}
}
}
this.initialize.apply(this,arguments);
}
//*********************************移動(dòng)層 函數(shù) 結(jié)束*******************************************
- javascript html5 canvas實(shí)現(xiàn)可拖動(dòng)省份的中國(guó)地圖
- js 鼠標(biāo)拖動(dòng)對(duì)象 可讓任何div實(shí)現(xiàn)拖動(dòng)效果
- js實(shí)現(xiàn)可拖動(dòng)DIV的方法
- 比較精簡(jiǎn)的Javascript拖動(dòng)效果函數(shù)代碼
- javascript 事件處理、鼠標(biāo)拖動(dòng)效果實(shí)現(xiàn)方法詳解
- JS高級(jí)拖動(dòng)技術(shù) setCapture,releaseCapture
- js實(shí)現(xiàn)圖片拖動(dòng)改變順序附圖
- html+javascript實(shí)現(xiàn)可拖動(dòng)可提交的彈出層對(duì)話(huà)框效果
- javascript之可拖動(dòng)的iframe效果代碼
- javascript html5輕松實(shí)現(xiàn)拖動(dòng)功能
相關(guān)文章
web 頁(yè)面分頁(yè)打印的實(shí)現(xiàn)
網(wǎng)上找的,經(jīng)我整理添加demo如下2009-06-06JavaScript(js)設(shè)置默認(rèn)輸入焦點(diǎn)(focus)
常常會(huì)在回復(fù)和引用里使用此功能,即單擊回復(fù)或引用,如讓輸入焦點(diǎn)出現(xiàn)在留言輸入框中,如果使用錨來(lái)定位,輸入焦點(diǎn)就不能激活了,需要了解的朋友可以參考下2012-12-12原生javascript實(shí)現(xiàn)勻速運(yùn)動(dòng)動(dòng)畫(huà)效果
這篇文章主要為大家詳細(xì)介紹了原生javascript實(shí)現(xiàn)勻速運(yùn)動(dòng)動(dòng)畫(huà)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02微信小程序使用slider設(shè)置數(shù)據(jù)值及switch開(kāi)關(guān)組件功能【附源碼下載】
這篇文章主要介紹了微信小程序使用slider設(shè)置數(shù)據(jù)值及switch開(kāi)關(guān)組件功能,結(jié)合實(shí)例形式分析了slider組件及switch組件的功能與使用方法,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12簡(jiǎn)單實(shí)現(xiàn)JavaScript彈幕效果
這篇文章主要幫助大家簡(jiǎn)單實(shí)現(xiàn)JavaScript彈幕效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05H5移動(dòng)端圖片壓縮上傳開(kāi)發(fā)流程
這篇文章主要為大家詳細(xì)介紹了H5移動(dòng)端圖片壓縮上傳開(kāi)發(fā)流程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11JavaScript位置參數(shù)實(shí)現(xiàn)原理及過(guò)程解析
這篇文章主要介紹了JavaScript位置參數(shù)實(shí)現(xiàn)原理及過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09web開(kāi)發(fā)js字符串拼接占位符及conlose對(duì)象Api詳解
本篇文章主要為大家介紹了web開(kāi)發(fā)中字符串的拼接,占位符的使用以及conlose對(duì)象Api的使用,有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09