• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
萌子
记录程序路上的点点滴滴……
博客园    首页    新随笔    联系   管理    订阅  订阅

可随意拖动的DIV并且带有打开与关闭

<html>   
<head>   
<title>paomeng</title>   
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">   
<META NAME="Description" CONTENT="http://www.xuemu.net">   
<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":""):dis   
document.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","这是窗口1");   
var b = new xWin("2",240,200,100,100,"窗口2","这是窗口2");    
var c = new xWin("3",200,160,250,50,"窗口3","这是窗口3");   
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>  
posted @ 2009-03-30 15:53  萌子  阅读(521)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3