我这有个例子 或许能帮助你 直接保存成.htm形式就能看到效果代码:<script language='JScript'><!--
function initialize()
{
var a = new xWin("1",190,200,600,420,"状态",'');
}
window.onload = initialize;
//--></script>
<html>
<body>
<script>
<!--
//可以打包为js文件;
var x0=0,y0=0,x1=0,y1=0;
var offx=6,offy=6;
var moveable=false;
var hover='orange',normal='orange';//color;
var index=10000;//z-index;
//开始拖动;
function startDrag(obj)
{
 //锁定标题栏;
 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)
{
 var win = obj.parentNode;
 var sha = win.nextSibling;
 if(moveable)
 {
  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)
{
 var win = obj.parentNode;
 var sha = win.nextSibling;
 win.style.borderColor = normal;
 obj.style.backgroundColor = normal;
 obj.nextSibling.style.color = normal;
 sha.style.left = obj.parentNode.style.left;
 sha.style.top  = obj.parentNode.style.top;
 //放开标题栏;
 obj.releaseCapture();
 moveable = false;
}
//获得焦点;
function getFocus(obj)
{
 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 cls(obj)
{
 var win = obj.parentNode.parentNode;
 var sha = win.nextSibling;
 win.style.visibility = "hidden";
 sha.style.visibility = "hidden";
}
//创建一个对象;
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:10px;"
  + "font-family:Verdana;"
  + "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)' "
   + ">"
    + "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;font-size:9pt;'>" + 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='cls(this)'>r</span>"
   + "</div>"
    + "<div style='"
    + "width:100%;"
    + "height:" + (this.height-20-4) + ";"
    + "background-color:white;"
    + "line-height:18px;"
    + "word-break:break-all;"
    + "padding:3px;font-size:9pt;color:black;"
    //+ "'>" + this.message + "</div>"
 + "'><iframe name=win width=100% height=100% marginheight=0 marginwidth=0 frameborder=0 scrolling=auto src=flpage.aspx?mess="+this.message+"></iframe></div>"
  + "</div>"
  + "<div 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>";
  //alert(str);
 document.body.insertAdjacentHTML("beforeEnd",str);
}
//-->
</script>
</body>
</html>

解决方案 »

  1.   

    还不如用个jquery,mootools,或者prototype呢,
      

  2.   

    如果在 网上 搜,一大堆不 专业的,
     现在 可以在 IE 里面用了,但是无法 在 FF 下拖动。JS 里面拖动的代码:
    var Dragdrop=new Class();
    Dragdrop.prototype=
    {
      initialize:function(width,height,shadowWidth,showShadow,contentType)
      {
        this.dragData=null;
        this.dragDataIn=null;
        this.backData=null;
        this.width=width;
        this.height=height;
        this.shadowWidth=shadowWidth;
        this.showShadow=showShadow;
        this.contentType=contentType;
        this.IsDraging=false;
        this.oObj=G('dialogBox');
        Event.observe(G('dialogBoxTitle'),"mousedown",this.moveStart.bindAsEventListener(this),false)
      }
      ,moveStart:function(event)
      {
        this.IsDraging=true;
        if(this.contentType==1)
        {
          G("iframeBG").style.display="";
          G("iframeBG").style.width=this.width;
          G("iframeBG").style.height=this.height
        };
        Event.observe(document,"mousemove",this.mousemove.bindAsEventListener(this),false);
        Event.observe(document,"mouseup",this.mouseup.bindAsEventListener(this),false);
        Event.observe(document,"selectstart",this.returnFalse,false);
        this.dragData=
        {
          x:Event.pointerX(event),y:Event.pointerY(event)
        };
        this.backData=
        {
          x:parseInt(this.oObj.style.left),y:parseInt(this.oObj.style.top)
        }
      }
      ,mousemove:function(event)
      {
        if(!this.IsDraging)return;
        var iLeft=Event.pointerX(event)-this.dragData["x"]+parseInt(this.oObj.style.left);
        var iTop=Event.pointerY(event)-this.dragData["y"]+parseInt(this.oObj.style.top);
        if(this.dragData["y"]<parseInt(this.oObj.style.top))iTop=iTop-12;
        else if(this.dragData["y"]>parseInt(this.oObj.style.top)+25)iTop=iTop+12;
        this.oObj.style.left=iLeft;
        this.oObj.style.top=iTop;
        if(this.showShadow)
        {
          G('dialogBoxShadow').style.left=iLeft+this.shadowWidth;
          G('dialogBoxShadow').style.top=iTop+this.shadowWidth
        };
        this.dragData=
        {
          x:Event.pointerX(event),y:Event.pointerY(event)
        };
        document.body.style.cursor="move"
      }
      ,mouseup:function(event)
      {
        if(!this.IsDraging)return;
        if(this.contentType==1)G("iframeBG").style.display="none";
        document.onmousemove=null;
        document.onmouseup=null;
        var mousX=Event.pointerX(event)-(document.documentElement.scrollLeft||document.body.scrollLeft);
        var mousY=Event.pointerY(event)-(document.documentElement.scrollTop||document.body.scrollTop);
        if(mousX<1||mousY<1||mousX>document.body.clientWidth||mousY>document.body.clientHeight)
        {
          this.oObj.style.left=this.backData["x"];
          this.oObj.style.top=this.backData["y"];
          if(this.showShadow)
          {
            G('dialogBoxShadow').style.left=this.backData.x+this.shadowWidth;
            G('dialogBoxShadow').style.top=this.backData.y+this.shadowWidth
          }
        };
        this.IsDraging=false;
        document.body.style.cursor="";
        Event.stopObserving(document,"selectstart",this.returnFalse,false)
      }
      ,returnFalse:function()
      {
        return false
      }
    };
      

  3.   

     希望大家 能把 上面的JS 代码 里面的 拖动的 几个关键字 改 一下,让我能在 FF 下用。
      

  4.   

    tjgjp========
     看了你的代码,不支持 FF
      

  5.   

    大家看一下演示 效果:http://bbs.51js.com/thread-75568-1-1.html 
     
    唯一不足的 就是不兼容 FF
      

  6.   


    类似 x:parseInt(this.oObj.style.left),y:parseInt(this.oObj.style.top) 
     都加上"px"试试
      

  7.   

    楼上的 
     你确定 只是 px 的问题,而不是 IE,与 FF 中的某一些 属性,方法不同 而导致 在FF 下无法 拖动。
      

  8.   

         
        mumuTiger 美女终于搞定了 , 真的只是加一个 PX 就好了,准备结贴,但是 还有一个请求 : 加我 QQ :757015000 ,哈哈,以后 多 向你 请教 。  实在不愿意的话,我星期 一 就结贴 。