用javascript拖动DIV层

  1. <html>   
  2. <head>   
  3. <title>用javascript拖动DIV层</title>   
  4. <style>   
  5. body{font-family:Verdana;font-size:11px;color:#333;}   
  6. #win1{[position:absolute;left:100;top:100;width:200px;height:150px;border:1px solid #000;}   
  7. .title{width:100%;background:#000;height:18px;color:#fff;cursor: move;}    
  8.  </style>   
  9.  </head>   
  10. <body>    
  11. <script>   
  12. var move=false;    
  13. function StartDrag(obj)                          
  14. {   
  15.  if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV")   
  16.  {   
  17.   obj.setCapture();   
  18.   obj.style.background="#999";   
  19.   move=true;   
  20.  }    
  21. }function Drag(obj)                      
  22. {   
  23.  if(move)   
  24.  {   
  25.   var oldwin=obj.parentNode;   
  26.   oldwin.style.left=event.clientX-100;   
  27.   oldwin.style.top=event.clientY-10;   
  28.  }   
  29. }function StopDrag(obj)   
  30. {   
  31.   obj.style.background="#000";   
  32.   obj.releaseCapture();   
  33.   move=false;   
  34. }    
  35. </script>    
  36. <div id="win1">   
  37. <div class="title" onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)" >窗口1</div>   
  38. This is a moveable window.<br>   
  39. Moreinfo in    
  40. </div>   
  41. </body>    
  42. </html>   

下面一个没使用过

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta content="text/html;charset=gb2312" http-equiv="content-type">
<style>
*{font-size:9pt;font-family:宋体;line-height:130%;}
</style>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
Global = new Object();
Global.__UniqueID = 0;
Global.GetUniqueID = function(){ return "__MT_UID_" + Global.__UniqueID ++;};
function Dialog(title,icon,body){
    this.Icon = icon || "";
    this.Title = title || "Untitled Document";
    this.Body = body || "Blank Document";
    this.UniqueID = Global.GetUniqueID();
    //
    this.Width = 400;
    this._mousedown = false;
    this._offsetX = 0;
    this._offsetY = 0;
    this._x = 0;
    this._y = 0;
    var i,l;
    //
    this.SetRect = function(_width,_top,_left){
        var obj;
        if(_width > 200) this.Width = _width;
        this._x = _left;
        this._y = _top;
        obj = document.getElementById(this.UniqueID);
        if(obj){
            obj.style.width = this.Width;
            obj.style.top = _top;
            obj.style.left = _left;
        }
    }
    this.SetIndex = function(index){
        if(isNaN(index)) return;
        var obj = document.getElementById(this.UniqueID);
        if(obj) obj.style.zIndex = index;
    }
    this.BindEvent = function(){
        var self = this,obj = null;
        var table = document.getElementById(this.UniqueID);
        if((null == table)||(table.tagName != "TABLE")) return;
        if(table.rows&&table.rows[0].cells&&table.rows[0].cells[0]&&table.rows[0].cells[0].firstChild){
            obj = table.rows[0].cells[0].firstChild;
            obj.rows[0].cells[2].lastChild.onclick = function(e){
                var obj = document.getElementById(self.UniqueID);
                if(obj) obj.parentNode.removeChild(obj);
            }
            obj.rows[0].cells[2].firstChild.onclick = function(e){
                e = window.event || e;
                var obj = document.getElementById(self.UniqueID);
                if(obj&&obj.rows&&obj.rows.length){
                    with(obj.rows[1].style){
                        display = display == "" ? "none" : "";
                    }
                }
                obj = (e.target || e.srcElement);
                if(obj.on == "true"){
                    obj.on = "false";
                    obj.src = "";
                }
                else{
                    obj.on = "true";
                    obj.src = "";
                }
            }
            if(obj.rows&&obj.rows[0].cells&&obj.rows[0].cells[0].firstChild) obj = obj.rows[0].cells[0].firstChild;
            obj.onmousedown = function(e){
                e = window.event || e;
                if(e.cancelBubble) e.cancelBubble();
                //Firefox....
            };
            obj.ondblclick = function(){ self.Close();};
            table.onmousedown = function(){
                var obj;
                if(Dialog.ObjectRef&&(this != Dialog.ObjectRef)){
                    obj = document.getElementById(Dialog.ObjectRef.UniqueID);
                    if(obj){
                        obj.style.borderColor = "#cccccc";
                        obj.style.zIndex = 90;
                        obj.rows[0].cells[0].firstChild.rows[0].cells[0].firstChild.src = "images/window_blur.gif";
                    }
                }
                obj = document.getElementById(self.UniqueID);
                if(obj){
                    obj.style.borderColor = "lightblue";
                    obj.style.zIndex = 99;
                    obj.rows[0].cells[0].firstChild.rows[0].cells[0].firstChild.src = "images/window.gif";
                }
                Dialog.ObjectRef = self;
            }
        }
        if(table.rows){
            table.rows[0].cells[0].firstChild.rows[0].cells[1].onmousedown = function(e){
                var obj;
                e = window.event || e;
                self._dragable = true;
                obj = document.getElementById(self.UniqueID);
                if(null == obj) return;
                self._x = e.clientX;
                self._y = e.clientY;
                self._offsetX = parseInt(obj.style.left);
                self._offsetY = parseInt(obj.style.top);
            }
            table.onmouseover = function(e){
                e = window.event || e;
                var obj = document.getElementById(self.UniqueID);
                if(obj) obj.style.cursor = "default";
               
            };
            table.onmouseup = function(e){
                var obj;
                e = window.event || e;
                self._dragable = false;
                obj = document.getElementById(self.UniqueID);
                if(obj) obj.style.cursor = "default";
            }
            table.rows[0].ondblclick = function(e){
                obj = document.getElementById(self.UniqueID);
                if(null == obj) return;
                if(obj.rows&&(obj.rows.length > 1)){
                    with(obj.rows[1].style){
                        display = display == "" ? "none" : "";
                        obj = obj.rows[0].cells[0].firstChild.rows[0].cells[2].firstChild;
                        obj.src = obj.on == "true" ? "" : "";
                        obj.on = obj.on == "true" ? "false" : "true";
                    };
                }
            }
        }
    }
    this.Close = function(){
        var table = document.getElementById(this.UniqueID);
        if(table) table.parentNode.removeChild(table);
    }
    this.toString = function(){
        var shtml = '';
        shtml += '<table cellpadding="0" cellspacing="0" border="1" onselectstart="return false;" oncontextmenu="return false;" ondragstart="return false;" bgcolor="#ffffff" id="' + this.UniqueID + '" style="border:solid 1px #cccccc;cursor:default;width:' + (this.Width) + 'px;position:absolute;top:' + this._y + 'px;left:' + this._x + 'px;">';
        shtml += '<tr height="20"><td style="border:0px;"><table cellpadding="5" cellspacing="0" border="0" width="100%"><tr><td width="20"><img src="' + this.Icon + '" width="16" height="16"/></td><td align="left"><span style="width:200px;overflow:hidden;" title="' + this.Title + '">' + this.Title + '</span></td><td width="32"><img src="" height="13" width="13" title="最小化" on="false" hspace="1" onmouseover="style.borderColor='lightblue'" style="border:solid 1px #ffffff" onmouseout="style.borderColor='#ffffff'"/><img src="" width="13" height="13" title="关闭" style="border:solid 1px #ffffff;" onmouseover="style.borderColor='lightblue'" onmouseout="style.borderColor='#ffffff'"/></td></tr>';
        shtml += '</table></td></tr>';
        shtml += '<tr style="display:;"><td style="border:0px;padding:5px;border-top:solid 1px #cccccc;" valign="top">' + this.Body + '</td></tr>';
        shtml += '</table>';
        return shtml;
    }
}
document.onmousemove = function(e){
    var _x,_y,obj;
    e = window.event || e;
    if(null == Dialog.ObjectRef) return;
    obj = document.getElementById(Dialog.ObjectRef.UniqueID);
    if(null == obj) return;
    if(Dialog.ObjectRef._dragable){
        obj.style.top = Dialog.ObjectRef._offsetY + e.clientY - Dialog.ObjectRef._y;
        obj.style.left = Dialog.ObjectRef._offsetX + e.clientX - Dialog.ObjectRef._x;
        obj.style.cursor = "move";
    }
}

Dialog.ObjectRef = null;
var dialog = new Dialog("哇哈哈",null,"Matrixy Herry");
document.write(dialog);
dialog.BindEvent();
dialog.SetIndex(1);
dialog.SetRect(400,100,200);

var dialog1 = new Dialog("偶来试试",null,'<img src="" width="300" height="200"/>');
document.write(dialog1);
dialog1.BindEvent();
dialog1.SetIndex(2);
dialog1.SetRect(350,100,250);

var dialog2 = new Dialog("Hello World");
document.write(dialog2);
dialog2.BindEvent();
dialog2.SetIndex(24);
dialog2.SetRect(380,10,20);

var dialog3 = new Dialog("4");
document.write(dialog3);
dialog3.BindEvent();
dialog3.SetRect(390,200,100);

var dialog4 = new Dialog("5");
document.write(dialog4);
dialog4.SetIndex(340);
dialog4.BindEvent();



//-->
</SCRIPT>
</BODY>
</HTML>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值