Home > Web Front-end > JS Tutorial > A cool js class for dragging layers, compatible with IE and Firefox_javascript skills

A cool js class for dragging layers, compatible with IE and Firefox_javascript skills

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-05-16 18:51:03
Original
1117 people have browsed it

I optimized and modified a JS drag class on the Internet, and added a translucent special effect when dragging. http://www.jb51.net/article/16122.htm
Note, please check the Cminfo class in this category:
http:/ /www.jb51.net/article/18760.htm

Copy code The code is as follows:

//************************************Move layer function starts**** ******************************************
//Generating a drag layer is very simple, Just need (if one of the parameters is an array, it means partial drag, arr[0] means drag layer, arr[1] means overall)
//new divDrag(['test'], [getObject('test31' ),getObject('test3')], getObject('test1') ,getObject('test2') ,[getObject('test41'),getObject('test4')]);
//Remember to drag Attribute layer position:absolute;
Array.prototype.extend = function(C){for(var B=0,A=C.length;Bfunction 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"); if( gCn.currentStyle)
                                                                                                  🎜>                                                                                = (e.pageX||(e.clientX document.documentElement.scrollLeft))-parseInt(_left); (_top);
if(!!A)
if(document.removeEventListener)
("mousemove",A,false);
document .removeEventListener("mouseup",B,false);
document.detachEvent("onmouseup",B ); 🎜> {
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        {
            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);
}
//*********************************移动层 函数 结束*******************************************
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template