我一直主张,如果自己都TM觉得不好的东西,不要轻易给别人用,原因很简单,老夫很要强,也很懒,我在追求最好的东西,所以我不断的改进,只是因为我有了这个一个东西,这个就是程序员最TM简单的责任,对你自己的代码负责,可惜,这个时代,大量的人忘记了这个规则,很多程序员都不负责任,都不知道自己的代码对他自己来说意味着什么。
的确,什么也不是。
如果什么也不是,那么的确意味着Nothing.
CoverWindow在之前利用的时候都比较好,但是缺少拖拽的功能,本次增加了这个功能,同时也修正了一些缺陷,例如
- 动画的显示问题
- 背景颜色的问题。
我不算对这个代码进行详细的解说,直接贴代码了,如果您看不懂,那么是你自己的问题了,我不想花时间在这类培训上,因为我写的代码很蠢,
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+"')\" /> "+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;
}
}