http://bbs.blueidea.com/thread-2844175-1-1.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DOM_text01</title>

<style type="text/css">

body,span,div,td{
}{font-size:12px;line-height:1.5em;color:#849BCA;}

#bodyL{
}{
float:left;
width:84px;
margin-right:2px;
}

a.od{
}{
width:80px;
height:25px;
line-height:25px;
text-align:center;
font-weight:bold;
border: 2px solid #849BCA;
display:block;
color:#547BC9;
float:left;
text-decoration:none;
margin-top:2px;
}

a.od:link{
}{
background:#EEF1F8;
}

a.od:visited{
}{
background:#EEF1F8;
}

a.od:hover{
}{
background:#EEE;
}

a.od:active{
}{
background:#EEE;
}

#fd{
}{
width:500px;
height:200px;
background:#EDF1F8;
border: 2px solid #849BCA;
margin-top:2px;
margin-left:2px;
float:left;
overflow:hidden;
position:absolute;
left:0px;
top:0px;
cursor:move;
float:left;

/**//*filter:alpha(opacity=50);*/
}

.content{
}{
padding:10px;
}

.hidden{
}{display:none;}
</style>
</head>
<body>
<div id="bodyL">
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<!--<a href="#" class="od" id="aaa" onclick = "document.getElementById('bbb').display = 'block';this.style.display='none';show('fd');return false;">[打开层]</a>
<a href="#" class="od" id="bbb" onclick = "document.getElementById('aaa').display = 'block';this.style.display='none';closeed('fd');return false;">[关闭层]</a>-->
<input type="button" value="打开" id="sw_bt" onclick="sw(this,'fd');"/>
</div>
<div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
<div class="content">移动层</div>
</div>

<script type="text/javascript">

function sw(o,id)
{

if (o.value=="打开")
{
o.value="关闭";
show(id)
}

else
{
o.value="打开"
closeed(id)
}
}
var prox;
var proy;
var proxc;
var proyc;

function show(id)
{/**//*--打开--*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
o.style.display = "block";
o.style.width = "1px";
o.style.height = "1px";

prox = setInterval(function()
{openx(o,500)},10);
}

function openx(o,x)
{/**//*--打开x--*/
var cx = parseInt(o.style.width);
if(cx < x)

{
o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
}
else

{
clearInterval(prox);

proy = setInterval(function()
{openy(o,200)},10);
}
}

function openy(o,y)
{/**//*--打开y--*/
var cy = parseInt(o.style.height);
if(cy < y)

{
o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
}
else

{
clearInterval(proy);
}
}

function closeed(id)
{/**//*--关闭--*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
if(o.style.display == "block")

{

proyc = setInterval(function()
{closey(o)},10);
}
}

function closey(o)
{/**//*--打开y--*/
var cy = parseInt(o.style.height);
if(cy > 0)

{
o.style.height = (cy - Math.ceil(cy/5)) +"px";
}
else

{
clearInterval(proyc);

proxc = setInterval(function()
{closex(o)},10);
}
}

function closex(o)
{/**//*--打开x--*/
var cx = parseInt(o.style.width);
if(cx > 0)

{
o.style.width = (cx - Math.ceil(cx/5)) +"px";
}
else

{
clearInterval(proxc);
o.style.display = "none";
}
}

/**//*-------------------------鼠标拖动---------------------*/
var od = document.getElementById("fd");
var dx,dy,mx,my,mouseD;
var odrag;
var isIE = document.all ? true : false;

document.onmousedown = function(e)
{
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))

{
mouseD = true;
}
}

document.onmouseup = function()
{
mouseD = false;
odrag = "";
if(isIE)

{
od.releaseCapture();
od.filters.alpha.opacity = 100;
}
else

{
window.releaseEvents(od.MOUSEMOVE);
od.style.opacity = 1;
}
}
//function readyMove(e){

od.onmousedown = function(e)
{
odrag = this;
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))

{
mx = e.clientX;
my = e.clientY;
od.style.left = od.offsetLeft + "px";
od.style.top = od.offsetTop + "px";
if(isIE)

{
od.setCapture();
od.filters.alpha.opacity = 50;
}
else

{
window.captureEvents(Event.MOUSEMOVE);
od.style.opacity = 0.5;
}
//alert(mx);
//alert(my);
}
}

document.onmousemove = function(e)
{
var e = e ? e : event;
//alert(mrx);
//alert(e.button);
if(mouseD==true && odrag)

{
var mrx = e.clientX - mx;
var mry = e.clientY - my;
od.style.left = parseInt(od.style.left) +mrx + "px";
od.style.top = parseInt(od.style.top) + mry + "px";
mx = e.clientX;
my = e.clientY;
}
}
</script>
</body>
</html>