我一直主张,如果自己都TM觉得不好的东西,不要轻易给别人用,原因很简单,老夫很要强,也很懒,我在追求最好的东西,所以我不断的改进,只是因为我有了这个一个东西,这个就是程序员最TM简单的责任,对你自己的代码负责,可惜,这个时代,大量的人忘记了这个规则,很多程序员都不负责任,都不知道自己的代码对他自己来说意味着什么。

的确,什么也不是。

如果什么也不是,那么的确意味着Nothing.

CoverWindow在之前利用的时候都比较好,但是缺少拖拽的功能,本次增加了这个功能,同时也修正了一些缺陷,例如

  1. 动画的显示问题
  2. 背景颜色的问题。

我不算对这个代码进行详细的解说,直接贴代码了,如果您看不懂,那么是你自己的问题了,我不想花时间在这类培训上,因为我写的代码很蠢,

if(null==window.CoverWindow)

{

    /**

    call: window.CoverWindow.create("divName",styles);

        styles:{id:value,id:value}

         backColor:

         coverOpacity:

         title:

         showTitle:

    **/

    window.CoverWindow={};

    window.CoverWindow.WindowID="COVER158f9f6e07214045aa5951d05e3219b0";

    window.CoverWindow.CoverZIndex=998;

    window.CoverWindow.WindowBorderDark="solid 2px #191970";

    window.CoverWindow.WindowBorderLight="solid 2px #B9D3EE";    

    window.CoverWindow.BorderSizeSum=4;

    window.CoverWindow.DefaultWidth=400;

    window.CoverWindow.DefaultHeight=200;

    window.CoverWindow.DefaultTitleHeight=18;

    window.CoverWindow.DefaultTitleBgColor="#36648B";

    window.CoverWindow.DefaultTitleColor="white";

    window.CoverWindow.DefaultTitleClose="";

    window.CoverWindow.ImagePath="";

    window.CoverWindow.WindowsList=new Array();

    window.CoverWindow.hide=function(divid)

    {

        divid=null==divid?window.CoverWindow.WindowID:divid;

        document.onkeyup=function(){};

        var topCoverWindow=$(divid);

        var btndiv=$(divid+"div");

        if(null!=topCoverWindow && topCoverWindow[window.CoverWindow.WindowID])topCoverWindow[window.CoverWindow.WindowID].style.display="none";

        if(null!=topCoverWindow)topCoverWindow.style.display="none";

        if(null!=btndiv)btndiv.style.display="none";    

    }

    window.CoverWindow._scroll=function()

    {

        window.CoverWindow.WindowsList.each(function(divid,ixs)

        {

            //var divid=window.CoverWindow.WindowID;

            var topCoverWindow=$(divid);

            if(null==topCoverWindow)

            {

                return;

            }

            with(topCoverWindow.style)

         {

         top=scrollTop();

         left=scrollLeft();

         width=windowWidth();

         height=windowHeight();

         }

         var div=topCoverWindow[window.CoverWindow.WindowID];

         if(null==div)

         {

             return;

         }

         var btndiv=$(divid+"div");

         if(null==btndiv)

         {

             return;

         }

         var w=div.clientWidth?div.clientWidth:window.CoverWindow.DefaultWidth;

            var h=div.clientHeight?div.clientHeight:window.CoverWindow.DefaultHeight;

            var btnDivHeight=(btndiv.clientHeight?btndiv.clientHeight:window.CoverWindow.DefaultTitleHeight);

            div.style.top=scrollTop()+(windowHeight()-h)/2+btnDivHeight;

            div.style.left=scrollLeft()+(windowWidth()-w)/2;

            

            btndiv.style.top=scrollTop()+(windowHeight()-h)/2;

            btndiv.style.left=scrollLeft()+(windowWidth()-w)/2;

            btndiv.style.width=w+window.CoverWindow.BorderSizeSum;

        });

    }

    window.CoverWindow.msgbox=function(strmsg,styles,divixxxd)

    {

        if(document.readyState!="complete")

        {

            var argu =$A(arguments);

            var fakeFunction=(function(){ window.CoverWindow.msgbox.apply(null, argu); });

            setTimeout(fakeFunction,10);

            return;

        }

        var zindeidinit=9999;

        styles=styles==null?{}:styles;

        if(styles.zIndex==null)styles.zIndex=zindeidinit;

        if(styles.width==null)styles.width=350;

        styles.height="";

        if(styles.title==null)styles.title="消息提示框";

        var divid=window.CoverWindow.WindowID+"mSg_Div";

        var divcid=window.CoverWindow.WindowID+"mSg_ContentDiv";

        var divbid=window.CoverWindow.WindowID+"mSg_ButtonDiv";

        var divbidbtn=window.CoverWindow.WindowID+"mSg_ButtonDivBtn";

        var div=$(divid);

        var divc=$(divcid);

        var divb=$(divbid);

        var btn=$(divbidbtn);

        if(null==div)

        {

            div=document.createElement("<div id='"+divid+"'"+

                " style='display:none;position:absolute;z-Index:"+zindeidinit+";"+

                "background-color:white;padding:5px;text-align:center'>");

                

            divc=document.createElement("<div id='"+divcid+"'"+

                " style='background-color:white;padding:1px;height:60px;text-align:left'>");                

            div.appendChild(divc);    

            divb=document.createElement("<div id='"+divbid+"'"+

                " style='background-color:white;border-top:solid 1px gray;padding:2px;text-align:center'>");                

            btn=document.createElement("<button name=\""+divbidbtn+"\">");

            btn.innerText="确定";

            divb.appendChild(btn);

            div.appendChild(divb);    

            document.body.appendChild(div);    

        }

        var showTitle=null==styles||styles.showTitle==null?true:styles.showTitle;

        btn.style.display=showTitle?"":"none";

        divb.style.display=showTitle?"":"none";

        divixxxd=null==divixxxd?window.CoverWindow.WindowID+"MSGSSS":divixxxd;

        (function(btn,divixxxd)

        {

            btn.onclick=function()

            {

                window.CoverWindow.hide(divixxxd);

            }

        })(btn,divixxxd);

        divc.innerHTML=strmsg;

        window.CoverWindow.create(div,styles,divixxxd);

    }

    window.CoverWindow.create=function(div2dock,styles,divid)

    {

        if(document.readyState!="complete")

        {

            var argu =$A(arguments);

            var fakeFunction=(function(){ window.CoverWindow.create.apply(null, argu); });

            setTimeout(fakeFunction,10);

            return;

        }

        var zindeidinit=styles==null||styles.zIndex==null?window.CoverWindow.CoverZIndex:styles.zIndex;

        divid=null==divid?window.CoverWindow.WindowID:divid;

        var coverBgColor=null==styles||styles.coverBgColor==null?"black":styles.coverBgColor;

        var coverOpacity=null==styles||styles.coverOpacity==null?"20":styles.coverOpacity;

        var showTitle=null==styles||styles.showTitle==null?true:styles.showTitle;

        var escKey=null==styles||styles.escKey==null?true:styles.escKey;

        var titleColor=null==styles||styles.titleColor==null?window.CoverWindow.DefaultTitleColor:styles.titleColor;

        var titleBgColor=null==styles||styles.titleBgColor==null?window.CoverWindow.DefaultTitleBgColor:styles.titleBgColor;

        var title=null==styles||styles.title==null?"":styles.title;

        var div =$(div2dock);

        if(null == div)

        {

            return;

        }

        if(div.style.backgroundColor==null||div.style.backgroundColor.length<1)

        {

            div.style.backgroundColor="white";

        }

        if(div.style.padding==null||div.style.padding.length<1)

        {

            div.style.padding="4px";

        }

        window.CoverWindow.WindowsList.remove(divid);

        window.CoverWindow.WindowsList.push(divid);

        var topCoverWindow=$(divid);

        var btndiv=$(divid+"div");

        if(null==topCoverWindow)

        {

            topCoverWindow=document.createElement("<div id='"+divid+"'"+

                " style='position:absolute;z-Index:"+zindeidinit+";"+

                "background-color:"+coverBgColor+";filter:alpha(opacity="+coverOpacity+");'>");

     document.body.appendChild(topCoverWindow);

     topCoverWindow.appendChild(document.createElement("<IFRAME src=\"javascript:false\""+

                    " style=\"position:absolute; visibility:inherit;top:0px;left:0px;"+

                    "filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';z-index:-1;"+

                    "width:"+windowWidth()+";height:"+windowHeight()+"px;\""+

                    " frameborder='1'>"));

            btndiv=document.createElement("<div id='"+divid+"div"+"'"+

                " style='position:absolute;padding:2px;font-size:12px;font-weight:bold;height:"+window.CoverWindow.DefaultTitleHeight+"px;"+

                "background-color:"+titleBgColor+";"+

                "color:"+titleColor+";"+

                "z-index:"+(zindeidinit+10)+";'>");

            btndiv.innerHTML="<img style='width:16px;height:16px;float:right;cursor:hand;' title='关闭这个窗口'"+

                " src='"+window.CoverWindow.ImagePath+"closewindow.gif' align='absmiddle'"+

                " onclick=\"window.CoverWindow.hide('"+divid+"')\"/>"+

                "<img src='"+window.CoverWindow.ImagePath+"windowleft.gif' title='双击关闭这个窗口'"+

                " style='width:16px;height:16px;cursor:hand;' align='absmiddle'"+

                " ondblclick=\"window.CoverWindow.hide('"+divid+"')\" />&nbsp;"+title;

            document.body.appendChild(btndiv);

            document.body.onscroll=function()

            {

                window.CoverWindow._scroll();

            }

            window.onresize=function()

            {

                window.CoverWindow._scroll();

            }

        }

        topCoverWindow.style.zIndex=zindeidinit;

        if(escKey)

        {

            document.onkeyup=function()

            {

                if(event.keyCode==27/*ESC*/)

                {

                    window.CoverWindow.hide();

                }

            }

        }

        topCoverWindow[window.CoverWindow.WindowID]=div;        

        with(topCoverWindow.style)

     {

     top=scrollTop();

     left=scrollLeft();

     width=windowWidth();

     height=windowHeight();

     display="block";

     }

        if(null!=styles)

        {

            for(var p in styles)

            {

                div.style[p]=styles[p];

            }

        }

        div.style.margin="0";

        div.style.borderTop="0";

        div.style.borderLeft=window.CoverWindow.WindowBorderLight;

        div.style.borderRight=window.CoverWindow.WindowBorderDark;

        div.style.borderBottom=window.CoverWindow.WindowBorderDark;

        div.style.display="block";

        div.style.zIndex=zindeidinit+10;

        div.style.position="absolute";

        

        btndiv.style.display=showTitle?"block":"none";

        btndiv.style.zIndex=zindeidinit+10;

        btndiv.style.borderLeft=window.CoverWindow.WindowBorderLight;

        btndiv.style.borderTop=window.CoverWindow.WindowBorderLight;

        btndiv.style.borderBottom=window.CoverWindow.WindowBorderDark;

        btndiv.style.borderRight=window.CoverWindow.WindowBorderDark;

        

        var w=div.clientWidth?div.clientWidth:window.CoverWindow.DefaultWidth;

        var h=div.clientHeight?div.clientHeight:window.CoverWindow.DefaultHeight;

        var btnDivHeight=(btndiv.clientHeight?btndiv.clientHeight:window.CoverWindow.DefaultTitleHeight);

        

        div.style.top=scrollTop()+(windowHeight()-h)/2+btnDivHeight+window.CoverWindow.BorderSizeSum/2;

        div.style.left=scrollLeft()+(windowWidth()-w)/2;

        btndiv.style.top=scrollTop()+(windowHeight()-h)/2;

        btndiv.style.left=scrollLeft()+(windowWidth()-w)/2;

        btndiv.style.width=w+window.CoverWindow.BorderSizeSum;//add for animation

        (function(div,btndiv)

        {

            btndiv.onmousedown=function()

            {

                btndiv.startex=event.clientX;

                btndiv.startey=event.clientY;

                btndiv.startmouse="1";

                btndiv.style.cursor="move";

            };

            btndiv.onmousemove=function()

            {

                if(btndiv.startmouse)

                {

                    cx=event.clientX-btndiv.startex;

                    cy=event.clientY-btndiv.startey;

                    btndiv.style.top=parseInt(btndiv.style.top)+cy;

                    btndiv.style.left=parseInt(btndiv.style.left)+cx;

                    div.style.top=parseInt(div.style.top)+cy;

                    div.style.left=parseInt(div.style.left)+cx;

                    btndiv.startex=event.clientX;

                    btndiv.startey=event.clientY;

                }

            };

            btndiv.onmouseup=function()

            {

                btndiv.startmouse=null;

                btndiv.startex=null;

                btndiv.startey=null;

                btndiv.style.cursor="default";

            };

        })(div,btndiv);

        var isAnimation=false;

        if(isAnimation)

        {

            div.style.width=0;//add for animation

            div.needToHeight=h;//add for animation

            div.style.overFlow="hidden";

            div.style.filter="alpha(style=0,opacity=0)";//add for animation

            

            btndiv.style.width=0;//w+window.CoverWindow.BorderSizeSum;//add for animation

            btndiv.needToWidth=w+window.CoverWindow.BorderSizeSum;//add for animation

            btndiv.style.filter="alpha(style=0,opacity=0)";//add for animation

            //add for animation

            var intx=setInterval(function(div,btndiv,steps)

            {

                var step=parseInt(btndiv.needToWidth)/steps;

                var nextS=Math.min(parseInt(btndiv.style.width)+step,parseInt(btndiv.needToWidth));

                var opacity=btndiv.opacity?parseInt(btndiv.opacity):0;

                opacity=opacity+100/steps;

                btndiv.opacity=opacity;

                if(parseInt(btndiv.style.width)>=parseInt(btndiv.needToWidth)

                    &&parseInt(div.style.width)>=parseInt(btndiv.needToWidth)

                    &&parseInt(div.style.height)>=parseInt(btndiv.needToHeight)

                    )

                {

                    clearInterval(intx);

                }

                if(nextS<=parseInt(btndiv.needToWidth))

                {

                    btndiv.style.width=nextS;            

                    btndiv.style.filter="alpha(style=0,opacity="+opacity+")";

                }

                

                step=parseInt(btndiv.needToWidth)/steps;

                nextS=Math.min(parseInt(div.style.width)+step,parseInt(btndiv.needToWidth));

                if(nextS<=parseInt(btndiv.needToWidth))

                {

                    div.style.width=nextS;            

                    div.style.filter="alpha(style=0,opacity="+opacity+")";

                }

            },1,div,btndiv,2);

        }//end add for animation

        if(null!=event)

        {

            event.cancelBubble=true;

        }

        return div;

    }

}