<script>
var width=230
var height=200
</script>
<style>
div{position:absolute;cursor:default;}
.movediv{padding-left:10px;padding-top:3px;z-index:0; display:block;top:50;width:230;height:25;cursor:hand;background:#CCF;}
.movedivup{padding-left:10px;padding-top:3px;z-index:10;display:block;top:50;width:230;height:25;cursor:hand;}
.textdiv{
      display:block;top:23;left:0;width:230;height:200;background-color:#eeeeff;}
.rootdiv{
      display:block;top:223;left:0;width:230;height:5;cursor:default;background-color:blue;}
.mindiv{
      display:block;top:1px;left:188px;width:20px;height:12px;text-align:center;cursor:default;border:2px solid #DDD;background:#EEE}
.closediv{
      display:block;top:1px;left:206px;width:20px;height:12px;text-align:center;cursor:default;border:2px solid #DDD;background:#EEE}
</style>
<input type=button onclick="adddiv(eval('div5'),'aa3','movediv3')">
<input type=button onclick="adddiv(eval('div6'),'aa4','movediv4')">
<input type=button onclick="adddiv(eval('div7'),'aa5','movediv5')">
<div id=movediv1 class=movediv onclick='this.classname="movedivup"' style="z-index:10">我的个人信息
  <div id=div2 class=textdiv>
   <div style="z-index:1;padding-left:5px"></div>
   <div style="z-index:-1;top:0"></div>
  </div>
  <div id=movediv2 class=rootdiv></div>
  <div id=div4 class=mindiv onclick="movediv1.style.display='none';div1.style.display=''" title="最小化">-<div></div></div>
  <div id=div11 class=closediv onclick="movediv1.style.display='none'" title="关闭">x<div></div></div>
</div>
<div id=div5 style="z-index:0"></div>
<div id=div6 style="z-index:0"></div>
<div id=div7 style="z-index:0"></div>
<div id=div1 class=movediv style="width:180;top:0;left:0;display:none" onclick="movediv1.style.display='';div1.style.display='none'">我的个人信息</div>
<script>
var i=1;
var obj=null;
var dx,dy,objt,objl,whoclick=null;
function adddiv(aim,title,id)
{
aim.innerHTML="<div id="+id+" class=movediv>"+title+"<div id=div2 class=textdiv><div tyle='z-index:1;padding-left:5px'></div><div style='z-index:-1;top:0'><img src='e:\\doc\\img\\text.gif' width=230 height=200></div></div><div id=movediv2 class=rootdiv><img src='e:\\doc\\img\\root.gif'></div><div id=div4 class=mindiv><div></div></div><div id=div51 class=closediv><div></div></div></div>";
}
function mousedown()
{ if(whoclick!=null)whoclick.classname="movediv";
  obj=event.srcElement;
  if(obj.id.indexOf("movediv") ==-1) {obj=null;return;}
  obj.classname="movedivup";
  dx=window.event.x;
  dy=window.event.y;
  objt=obj.offsetTop;
  objl=obj.offsetLeft; 
}function mouseup(){if(obj!=null) whoclick=obj;obj=null;}
function mousemove()
{if(obj!=null)
  {
   //obj.style.z-index=10;
   obj.style.xp=window.event.x-dx;
   obj.style.yp=window.event.y-dy;
   obj.style.left=objl+obj.style.xp;
   obj.style.top=objt+obj.style.yp;  
  }
}
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup
</script>

解决方案 »

  1.   

    我想用div 模拟出小窗口,进行拖动
    如果只有一个窗口,拖动起来是可以的。
    var a = new xWin("id1",160,200,200,200,"windows1","xWin 2002-8-13"); 
    但是 还是有时候鼠标不能正确定位在窗口上但是如果是多个窗口
    var b = new xWin("id2",160,200,200,200,"windows1","xWin 2002-8-13"); 
    var c = new xWin("id3",160,200,200,200,"windows1","xWin 2002-8-13"); 那么就会不对了。 拖第一个可以,到后来就不行了。
      

  2.   

    这个一共有4个,都可以移动,我懒得看你的代码。你自己看这个例子,再修改你自己的
    <html>
    <head>
    <title>用层模拟的小窗口</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <META NAME="Description" CONTENT="中国asp之家">
    <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 type="text/javascript"> 
    <!-- 
    //可以打包为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 type="text/javascript"> 
    <!-- 
    function initialize(){ var a = new xWin("1",160,200,200,200,"窗口1","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13");
    var b = new xWin("2",240,200,100,100,"窗口2","Welcome to visited my personal website:<br><a href=http://www14.brinkster.com/wildcity target=_blank>http://wildcity.126.com</a><br>and u can also sign my guestbook at:<br><a href=http://www.aspxhome.com target=_blank>中国asp之家</a><br><br>thx!!! =)...");
    var c = new xWin("3",200,160,250,50,"窗口3","Copyright by <a href='mailto:[email protected]'>Wildwind</a>!");
    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>
    <div id=xMsg4 style='z-index:10000;width:260px;height:300px;left:300px;top:300px;background-color:#336699;color:#336699;font-size:8pt;font-family:Tahoma;position:absolute;cursor:default;border:2px solid #336699;' onmousedown='getFocus(this)'><div style='background-color:#336699;width:256;height:20;color:white;' onmousedown='startDrag(this)' onmouseup='stopDrag(this)' onmousemove='drag(this)' ondblclick='min(this.childNodes[1])'><span style='width:232px;padding-left:3px;'>窗口4</span><span style='width:12px;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span><span style='width:12px;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide('4',null)'>r</span></div><div style='width:100%;height:276px;background-color:white;line-height:14px;word-break:break-all;padding:3px;'>xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13</div></div><div id=xMsg4bg style='width:260px;height:300px;top:300px;left:300px;z-index:9999;position:absolute;background-color:black;filter:alpha(opacity=40);'></div>
    </body>
    </html>