qichunren 发表于 2013-1-27 05:31:18

创建一个可移动的层

大家好,我好想自己亲手写一个可以用鼠标拖动的层,可是我一点头绪也没有,从JAVAEYE上搜到了一篇文章,可是还是看不懂.
有谁知道这个原理,可是讲讲吗(最好写一点面向对象的js代码)?我想弄懂之后,创建一个JS 工具类,用来创建一个notice对话框.
谢谢您!!!!http://www.agoit.com/images/smiles/icon_redface.gif

javaeye上一网友的文章,他的地址我不记得了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><style>.divcc{      position:absolute;      border: 1px #FF99FF solid;      background-color:#FFFF99;         height:auto;         width:300px;         z-index:1000;    }       .divdd{      position:absolute;      border: 0px;      background-color:#FFFF80;         height:auto;         width:300px;         z-index:999;    } </style><script>function cursorover(){            document.getElementById("cc").style.cursor="move";      }         function cursorout(){            document.getElementById("cc").style.cursor="auto";      }         //可移动的层      var dragapproved=false;      var z,x,y;         function move(){            if (event.button==1&&dragapproved){                z.style.pixelLeft=temp1+event.clientX-x;                z.style.pixelTop=temp2+event.clientY-y;                return false;            }            if(event.button==2){                alert("别复制!!");                return false;            }      }         function drags(){            if (!document.all)                return;            if (event.srcElement.className=="divcc"){                dragapproved=true;                z=event.srcElement;                temp1=z.style.pixelLeft;                temp2=z.style.pixelTop;                x=event.clientX;                y=event.clientY;                document.onmousemove=move;            }      }         document.onmousedown=drags;      document.onmouseup=new Function("dragapproved=false");    //--------------------------------------------------------------------------------------------------------------------------         //初始化层位置      function init(){            var w =document.body.clientWidth;            var h =document.body.clientHeight;            var divObj = document.getElementById("cc");            divObj.style.left = w/2;            divObj.style.top = h/2;alert('w:'+w);alert('h:'+h);    }      //最大化      function max(){            document.getElementById("dd").style.display="inline";            var divObj = document.getElementById("cc");            divObj.style.width="300px";            var w =document.documentElement.clientWidth;            var h =document.documentElement.clientHeight;            divObj.style.left = w/2;            divObj.style.top = h/2;      }      //最小化      function min(){            document.getElementById("dd").style.display="none";            var divObj = document.getElementById("cc");            var w =document.documentElement.clientWidth;            //获得网页可见区域的宽度(不包括边框)            var h =document.documentElement.clientHeight;         //获得网页可见区域的高度(不包括边框)            divObj.style.width="150px";                           //设置层宽度            var myw = divObj.offsetWidth;                           //获得自身的宽度(包括边框)            var myh = divObj.offsetHeight;                        //获得自身的高度(包括边框)            var curw = w - myw;            var curh = h - myh;            divObj.style.left = curw;            divObj.style.top = curh;      }      //关闭      function clo(){            document.getElementById("cc").style.display="none";      }</script></HEAD><BODY > <div id="cc"onmouseout="cursorout()" class="divcc"> <span style="height:20px;" >最大化</span> <span >最小化</span> <span >关闭</span><br/> <div id="dd" class="divdd"> <table border="1px" cellpadding="0" cellspacing="0" bordercolor="#FF33CC" width="300px"> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> <tr> <td>a</td> <td>b</td> <td>c</td> </tr> </table> </div> </div> </BODY></HTML>

document.documentElement与document.body是同一个对象吗?
答案是:
原来HTML里是document.body
XHTML里是document.documentElement
都指的是 <body >节点(OR元素)
可以这样兼容:
function   getBodyObj() { return   (document.documentElement)   ?   document.documentElement   :   document.body   ; }
页: [1]
查看完整版本: 创建一个可移动的层