首页 > 代码库 > 用层模拟可移动的小窗口

用层模拟可移动的小窗口

<html><head><title>_xWin-电表控制器</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type=‘text/css‘><!--body{font-size:12px;}a:visited{text-decoration:none;color:slategray;}a:hover{text-decoration:underline;color:slategray;}a:link{text-decoration:none;color:slategray;}--></style><script language=JScript><!--//可以打包为js文件;var x0=0,y0=0,x1=0,y1=0;var offx=6,offy=6;var moveable=false;var hover=orange,normal=#336699;//color;var index=10000;//z-index;//开始拖动;function startDrag(obj){if(event.button==1){//锁定标题栏;obj.setCapture();//定义对象;var win = obj.parentNode;var sha = win.nextSibling;//记录鼠标和层位置;x0 = event.clientX;y0 = event.clientY;x1 = parseInt(win.style.left);y1 = parseInt(win.style.top);//记录颜色;normal = obj.style.backgroundColor;//改变风格;obj.style.backgroundColor = hover;win.style.borderColor = hover;obj.nextSibling.style.color = hover;sha.style.left = x1 + offx;sha.style.top = y1 + offy;moveable = true;}}//拖动;function drag(obj){if(moveable){var win = obj.parentNode;var sha = win.nextSibling;win.style.left = x1 + event.clientX - x0;win.style.top = y1 + event.clientY - y0;sha.style.left = parseInt(win.style.left) + offx;sha.style.top = parseInt(win.style.top) + offy;}}//停止拖动;function stopDrag(obj){if(moveable){var win = obj.parentNode;var sha = win.nextSibling;var msg = obj.nextSibling;win.style.borderColor = normal;obj.style.backgroundColor = normal;msg.style.color = normal;sha.style.left = obj.parentNode.style.left;sha.style.top = obj.parentNode.style.top;obj.releaseCapture();moveable = false;}}//获得焦点;function getFocus(obj){if(obj.style.zIndex!=index){index = index + 2;var idx = index;obj.style.zIndex=idx;obj.nextSibling.style.zIndex=idx-1;}}//最小化;function min(obj){var win = obj.parentNode.parentNode;var sha = win.nextSibling;var tit = obj.parentNode;var msg = tit.nextSibling;var flg = msg.style.display=="none";if(flg){win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;sha.style.height = win.style.height;msg.style.display = "block";obj.innerHTML = "0";}else{win.style.height = parseInt(tit.style.height) + 2*2;sha.style.height = win.style.height;obj.innerHTML = "2";msg.style.display = "none";}}//创建一个对象;function xWin(id,w,h,l,t,tit,msg){index = index+2;this.id = id;this.width = w;this.height = h;this.left = l;this.top = t;this.zIndex = index;this.title = tit;this.message = msg;this.obj = null;this.bulid = bulid;this.bulid();}//初始化;function bulid(){var str = ""+ "<div id=xMsg" + this.id + " "+ "style=‘"+ "z-index:" + this.zIndex + ";"+ "width:" + this.width + ";"+ "height:" + this.height + ";"+ "left:" + this.left + ";"+ "top:" + this.top + ";"+ "background-color:" + normal + ";"+ "color:" + normal + ";"+ "font-size:8pt;"+ "font-family:Tahoma;"+ "position:absolute;"+ "cursor:default;"+ "border:2px solid " + normal + ";"+ ""+ "onmousedown=‘getFocus(this)‘>"+ "<div "+ "style=‘"+ "background-color:" + normal + ";"+ "width:" + (this.width-2*2) + ";"+ "height:20;"+ "color:white;"+ ""+ "onmousedown=‘startDrag(this)‘ "+ "onmouseup=‘stopDrag(this)‘ "+ "onmousemove=‘drag(this)‘ "+ "ondblclick=‘min(this.childNodes[1])‘"+ ">"+ "<span style=‘width:" + (this.width-2*12-4) + ";padding-left:3px;‘>" + this.title + "</span>"+ "<span style=‘width:12;border-width:0px;color:white;font-family:webdings;‘ onclick=‘min(this)‘>0</span>"+ "<span style=‘width:12;border-width:0px;color:white;font-family:webdings;‘ onclick=‘ShowHide(\""+this.id+"\",null)‘>r</span>"+ "</div>"+ "<div style=‘"+ "width:100%;"+ "height:" + (this.height-20-4) + ";"+ "background-color:white;"+ "line-height:14px;"+ "word-break:break-all;"+ "padding:3px;"+ "‘>" + this.message + "</div>"+ "</div>"+ "<div id=xMsg" + this.id + "bg style=‘"+ "width:" + this.width + ";"+ "height:" + this.height + ";"+ "top:" + this.top + ";"+ "left:" + this.left + ";"+ "z-index:" + (this.zIndex-1) + ";"+ "position:absolute;"+ "background-color:black;"+ "filter:alpha(opacity=40);"+ "‘></div>";document.body.insertAdjacentHTML("beforeEnd",str);}//显示隐藏窗口function ShowHide(id,dis){var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):disdocument.getElementById("xMsg"+id).style.display = bdisplay;document.getElementById("xMsg"+id+"bg").style.display = bdisplay;}//--></script><script language=‘JScript‘><!--function initialize(){var a = new xWin("1",160,200,200,200,"窗口1","xWin <br> A Cool Pop Div Window<br>sjzkeda.com<br>chinaz.com");var b = new xWin("2",240,200,100,100,"窗口2","Welcome to 中国站长站:<br><a href=http://www.sjzkeda.com target=_blank>http://www.sjzkeda.com</a><br>请多提建议噢<br><br>感谢您的关注!");var c = new xWin("3",200,160,250,50,"窗口3","Copyright by <a href=http://www.mamicode.com/‘#‘>chinaz.com!");ShowHide("1","none");//隐藏窗口1}window.onload = initialize;//--></script></head><base target="_blank"><body onselectstart=‘return false‘ oncontextmenu=‘return false‘ ><a onclick="ShowHide(‘1‘,null);return false;" href="">窗口1</a><a onclick="ShowHide(‘2‘,null);return false;" href="">窗口2</a><a onclick="ShowHide(‘3‘,null);return false;" href="">窗口3</a></body></html>

 

用层模拟可移动的小窗口