<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-153  評論-235  文章-19  trackbacks-0

    幾種不同的javascript移動層
    http://ifairy.cn/blog/article.asp?id=256


    樣式1
    1. <html>
    2. <head>
    3. <title>_xWin</title>
    4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    5. <META NAME="Description" CONTENT="http://www.xuemu.net">
    6. <style type="text/css">
    7. <!--
    8. #main {
    9.  background-color: #CCCCCC;
    10.  height: 600px;
    11.  width: 520px;
    12. }
    13. -->
    14. </style>
    15. <script language=JScript>
    16. <!--
    17. //可以打包為js文件;
    18. var x0=0,y0=0,x1=0,y1=0;
    19. var offx=6,offy=6;
    20. var moveable=false;
    21. var hover='orange',normal='#336699';//color;
    22. var index=10000;//z-index;
    23. //開始拖動;
    24. function startDrag(obj)
    25. {
    26. if(event.button==1)
    27. {
    28. //鎖定標題欄;
    29. obj.setCapture();
    30. //定義對象;
    31. var win = obj.parentNode;
    32. var sha = win.nextSibling;
    33. //記錄鼠標和層位置;
    34. x0 = event.clientX;
    35. y0 = event.clientY;
    36. x1 = parseInt(win.style.left);
    37. y1 = parseInt(win.style.top);
    38. //記錄顏色;
    39. normal = obj.style.backgroundColor;
    40. //改變風格;
    41. obj.style.backgroundColor = hover;
    42. win.style.borderColor = hover;
    43. obj.nextSibling.style.color = hover;
    44. sha.style.left = x1 + offx;
    45. sha.style.top = y1 + offy;
    46. moveable = true;
    47. }
    48. }
    49. //拖動;
    50. function drag(obj)
    51. {
    52. if(moveable)
    53. {
    54. var win = obj.parentNode;
    55. var sha = win.nextSibling;
    56. win.style.left = x1 + event.clientX - x0;
    57. win.style.top = y1 + event.clientY - y0;
    58. sha.style.left = parseInt(win.style.left) + offx;
    59. sha.style.top = parseInt(win.style.top) + offy;
    60. }
    61. }
    62. //停止拖動;
    63. function stopDrag(obj)
    64. {
    65. if(moveable)
    66. {
    67. var win = obj.parentNode;
    68. var sha = win.nextSibling;
    69. var msg = obj.nextSibling;
    70. win.style.borderColor = normal;
    71. obj.style.backgroundColor = normal;
    72. msg.style.color = normal;
    73. sha.style.left = obj.parentNode.style.left;
    74. sha.style.top = obj.parentNode.style.top;
    75. obj.releaseCapture();
    76. moveable = false;
    77. }
    78. }
    79. //獲得焦點;
    80. function getFocus(obj)
    81. {
    82. if(obj.style.zIndex!=index)
    83. {
    84. index = index+2;
    85. var idx = index;
    86. obj.style.zIndex=idx;
    87. obj.nextSibling.style.zIndex=idx-1;
    88. }
    89. }
    90. //最小化;
    91. function min(obj)
    92. {
    93. var win = obj.parentNode.parentNode;
    94. var sha = win.nextSibling;
    95. var tit = obj.parentNode;
    96. var msg = tit.nextSibling;
    97. var flg = msg.style.display=="none";
    98. if(flg)
    99. {
    100. win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
    101. sha.style.height = win.style.height;
    102. msg.style.display = "block";
    103. obj.innerHTML = "0";
    104. }
    105. else
    106. {
    107. win.style.height = parseInt(tit.style.height) + 2*2;
    108. sha.style.height = win.style.height;
    109. obj.innerHTML = "2";
    110. msg.style.display = "none";
    111. }
    112. }
    113. //創建一個對象;
    114. function xWin(id,w,h,l,t,tit,msg)
    115. {
    116. index = index+2;
    117. this.id = id;
    118. this.width = w;
    119. this.height = h;
    120. this.left = l;
    121. this.top = t;
    122. this.zIndex = index;
    123. this.title = tit;
    124. this.message = msg;
    125. this.obj = null;
    126. this.bulid = bulid;
    127. this.bulid();
    128. }
    129. //初始化;
    130. function bulid()
    131. {
    132. var str = ""
    133. + "<div id=xMsg" + this.id + " "
    134. + "style='"
    135. + "z-index:" + this.zIndex + ";"
    136. + "width:" + this.width + ";"
    137. + "height:" + this.height + ";"
    138. + "left:" + this.left + ";"
    139. + "top:" + this.top + ";"
    140. + "background-color:" + normal + ";"
    141. + "color:" + normal + ";"
    142. + "font-size:8pt;"
    143. + "font-family:Tahoma;"
    144. + "position:absolute;"
    145. + "cursor:default;"
    146. + "border:2px solid " + normal + ";"
    147. + "' "
    148. + "onmousedown='getFocus(this)'>"
    149. + "<div id=Nav_"+(this.id)
    150. + " style='"
    151. + "background-color:" + normal + ";"
    152. + "width:" + (this.width-2*2) + ";"
    153. + "height:20;"
    154. + "color:white;"
    155. + "' "
    156. + "onmousedown='startDrag(this)' "
    157. + "onmouseup='stopDrag(this)' "
    158. + "onmousemove='drag(this)' "
    159. + "ondblclick='min(this.childNodes[1])'"
    160. + ">"
    161. + "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'>" + this.title + "</span>"
    162. + "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='min(Nav_"+(this.id)+".childNodes[1])'>0</span>"
    163. + "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide(\""+this.id+"\",null)'>r</span>"
    164. + "</div>"
    165. + "<div id=C_"+(this.id)+" style='"
    166. + "width:100%;"
    167. + "height:" + (this.height-20-4) + ";"
    168. + "background-color:white;"
    169. + "line-height:14px;"
    170. + "word-break:break-all;"
    171. + "padding:3px;"
    172. + "'>" + this.message + "</div>"
    173. + "</div>"
    174. + "<div id=xMsg" + this.id + "bg style='"
    175. + "width:" + this.width + ";"
    176. + "height:" + this.height + ";"
    177. + "top:" + this.top + ";"
    178. + "left:" + this.left + ";"
    179. + "z-index:" + (this.zIndex-1) + ";"
    180. + "position:absolute;"
    181. + "background-color:black;"
    182. + "filter:alpha(opacity=40);"
    183. + "'></div>";
    184. document.body.insertAdjacentHTML("beforeEnd",str);
    185. }
    186. //顯示隱藏窗口
    187. function ShowHide(id,dis){
    188. var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis
    189. document.getElementById("xMsg"+id).style.display = bdisplay;
    190. document.getElementById("xMsg"+id+"bg").style.display = bdisplay;
    191. alert (bdisplay);
    192. }
    193. //-->
    194. </script>
    195. <script language='JScript'>
    196. <!--
    197. function initialize()
    198. {
    199. var a = new xWin("1",250,180,10,100,"窗口1","");
    200. var b = new xWin("2",250,180,10,140,"窗口2","Welcome to visited my personal website:感謝您的關注!");
    201. var c = new xWin("3",250,180,270,100,"窗口3","Copyright by <a href='#'>Wildwind</a>!");
    202. var d = new xWin("4",250,180,270,140,"窗口4","Copyright by <a href='#'>Wildwind</a>!");
    203. //ShowHide("1","none");//隱藏窗口1
    204. //ShowHide("2","none");//隱藏窗口2
    205. //ShowHide("3","none");//隱藏窗口3
    206. min(Nav_1.childNodes[1]);//最小化窗口1
    207. min(Nav_2.childNodes[1]);//最小化窗口2
    208. min(Nav_3.childNodes[1]);//最小化窗口3
    209. min(Nav_4.childNodes[1]);//最小化窗口4
    210. }
    211. window.onload = initialize;
    212. </script>
    213. </head>
    214. <base target="_blank">
    215. <body onselectstart='return false' oncontextmenu='return false' >
    216. <p><span onClick="min(Nav_1.childNodes[1]);">窗口1最小化</span>
    217. <a onClick="ShowHide('1',null);return false;" href="">窗口1</a>
    218. <a onClick="ShowHide('2',null);return false;" href="">窗口2</a>
    219. <a onClick="ShowHide('3',null);return false;" href="">窗口3</a></p>
    220. <div id="main">main</div>
    221. <p> </p>
    222. </body>
    223. </html>[



    樣式2
    1. <html>
    2. <head>
    3. <style>
    4. *{font-size:12px}
    5. .dragTable{
    6.  font-size:12px;
    7.  border-top:1px solid #3366cc;
    8.  margin-bottom: 10px;
    9.  width:100%;
    10.  background-color:#FFFFFF;
    11. }
    12. td{vertical-align:top;}
    13. .dragTR{
    14.  cursor:move;
    15.  color:#7787cc;
    16.  background-color:#e5eef9;
    17.  height:20px;
    18.  padding-left:5px;
    19.  font-weight:bold;
    20. }
    21. #parentTable{
    22.  border-collapse:collapse;
    23.  letter-spacing:25px;
    24. }
    25. </style>
    26. <script defer>
    27. /****JoeLee************E-MAIL:hktx@163.com****QQ:48293707*****11:09 2006-2-9******/
    28.  var Drag={dragged:false,
    29.   ao:null,
    30.   tdiv:null,
    31. dragStart:function(){
    32.  Drag.ao=event.srcElement;
    33.  if((Drag.ao.tagName=="TD")||(Drag.ao.tagName=="TR")){
    34.   Drag.ao=Drag.ao.offsetParent;
    35.   Drag.ao.style.zIndex=100;
    36.  }else
    37.   return;
    38.  Drag.dragged=true;
    39.  Drag.tdiv=document.createElement("div");
    40.  Drag.tdiv.innerHTML=Drag.ao.outerHTML;
    41.  Drag.ao.style.border="1px dashed red";
    42.  Drag.tdiv.style.display="block";
    43.  Drag.tdiv.style.position="absolute";
    44.  Drag.tdiv.style.filter="alpha(opacity=70)";
    45.  Drag.tdiv.style.cursor="move";
    46.  Drag.tdiv.style.border="1px solid #000000";
    47.  Drag.tdiv.style.width=Drag.ao.offsetWidth;
    48.  Drag.tdiv.style.height=Drag.ao.offsetHeight;
    49.  Drag.tdiv.style.top=Drag.getInfo(Drag.ao).top;
    50.  Drag.tdiv.style.left=Drag.getInfo(Drag.ao).left;
    51.  document.body.appendChild(Drag.tdiv);
    52.  Drag.lastX=event.clientX;
    53.  Drag.lastY=event.clientY;
    54.  Drag.lastLeft=Drag.tdiv.style.left;
    55.  Drag.lastTop=Drag.tdiv.style.top;
    56. },
    57. draging:function(){//重要:判斷MOUSE的位置
    58.  if(!Drag.dragged||Drag.ao==null)return;
    59.  var tX=event.clientX;
    60.  var tY=event.clientY;
    61.  Drag.tdiv.style.left=parseInt(Drag.lastLeft)+tX-Drag.lastX;
    62.  Drag.tdiv.style.top=parseInt(Drag.lastTop)+tY-Drag.lastY;
    63.  for(var i=0;i<parentTable.cells.length;i++){
    64.   var parentCell=Drag.getInfo(parentTable.cells[i]);
    65.   if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){
    66.    var subTables=parentTable.cells[i].getElementsByTagName("table");
    67.    if(subTables.length==0){
    68.     if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){
    69.      parentTable.cells[i].appendChild(Drag.ao);
    70.     }
    71.     break;
    72.    }
    73.    for(var j=0;j<subTables.length;j++){
    74.     var subTable=Drag.getInfo(subTables[j]);
    75.     if(tX>=subTable.left&&tX<=subTable.right&&tY>=subTable.top&&tY<=subTable.bottom){
    76.      parentTable.cells[i].insertBefore(Drag.ao,subTables[j]);
    77.      break;
    78.     }else{
    79.      parentTable.cells[i].appendChild(Drag.ao);
    80.     } 
    81.    }
    82.   }
    83.  }
    84. }
    85. ,
    86. dragEnd:function(){
    87.  if(!Drag.dragged)return;
    88.  Drag.dragged=false;
    89.  Drag.mm=Drag.repos(150,15);
    90.  Drag.ao.style.borderWidth="0px";
    91.  Drag.ao.style.borderTop="1px solid #3366cc";
    92.  Drag.tdiv.style.borderWidth="0px";
    93.  Drag.ao.style.zIndex=1;
    94. },
    95. getInfo:function(o){//取得坐標
    96.  var to=new Object();
    97.  to.left=to.right=to.top=to.bottom=0;
    98.  var twidth=o.offsetWidth;
    99.  var theight=o.offsetHeight;
    100.  while(o!=document.body){
    101.   to.left+=o.offsetLeft;
    102.   to.top+=o.offsetTop;
    103.   o=o.offsetParent;
    104.  }
    105.   to.right=to.left+twidth;
    106.   to.bottom=to.top+theight;
    107.  return to;
    108. },
    109. repos:function(aa,ab){
    110.  var f=Drag.tdiv.filters.alpha.opacity;
    111.  var tl=parseInt(Drag.getInfo(Drag.tdiv).left);
    112.  var tt=parseInt(Drag.getInfo(Drag.tdiv).top);
    113.  var kl=(tl-Drag.getInfo(Drag.ao).left)/ab;
    114.  var kt=(tt-Drag.getInfo(Drag.ao).top)/ab;
    115.  var kf=f/ab;
    116.  return setInterval(function(){if(ab<1){
    117.        clearInterval(Drag.mm);
    118.        Drag.tdiv.removeNode(true);
    119.        Drag.ao=null;
    120.        return;
    121.       }
    122.      ab--;
    123.      tl-=kl;
    124.      tt-=kt;
    125.      f-=kf;
    126.      Drag.tdiv.style.left=parseInt(tl)+"px";
    127.      Drag.tdiv.style.top=parseInt(tt)+"px";
    128.      Drag.tdiv.filters.alpha.opacity=f;
    129.     }
    130. ,aa/ab)
    131. },
    132. inint:function(){//初始化
    133.  for(var i=0;i<parentTable.cells.length;i++){
    134.   var subTables=parentTable.cells[i].getElementsByTagName("table");
    135.   for(var j=0;j<subTables.length;j++){
    136.    if(subTables[j].className!="dragTable")break;
    137.    subTables[j].rows[0].className="dragTR";
    138.    subTables[j].rows[0].attachEvent("onmousedown",Drag.dragStart);
    139.   }
    140.  }
    141.  document.onmousemove=Drag.draging;
    142.  document.onmouseup=Drag.dragEnd;
    143. }
    144. //end of Object Drag
    145. }
    146. Drag.inint();
    147. function _show(str){
    148.  var w=window.open('','');
    149.  var d=w.document;
    150.  d.open();
    151.  str=str.replace(/=(?!")(.*?)(?!")( |>)/g,"=\"$1\"$2");
    152.  str=str.replace(/(<)(.*?)(>)/g,"<span style='color:red;'><$2></span><br />");
    153.  str=str.replace(/\r/g,"<br />\n");
    154.  d.write(str);
    155. }
    156. </script>
    157. </head>
    158. <body>
    159. <table border="0" cellpadding="0" cellspacing="10" width="100%" height=500 id="parentTable">
    160. <tr >
    161.  <td width="25%" valgin="top">
    162.   <table border=0 class="dragTable" cellspacing="0">
    163.    <tr>
    164.     <td><b>GMAIL</b></td>
    165.    </tr>
    166.    <tr>
    167.     <td>暫時無法顯示GMAIL內容</td>
    168.    <tr>
    169.   </table><table border=0 class="dragTable" cellspacing="0">
    170.    <tr>
    171.     <td>新浪體育</td>
    172.    </tr>
    173.    <tr>
    174.     <td>解剖威隊獨門利器FW28 2萬轉引擎匹配超級變速器頒獎:辛吉斯欣喜能以冠軍起步<br/> 印度搭檔創下紀錄法新社前瞻冬奧短道速滑:中韓唱主角 美加施冷箭</td>
    175.    <tr>
    176.   </table>
    177.   <table border=0 class="dragTable" cellspacing="0">
    178.    <tr>
    179.     <td>焦點</td>
    180.    </tr>
    181.    <tr>
    182.     <td>京廣線中斷4小時20臨客返漢晚點 中國新聞網-湖北分社 - 所有 235 相關報道 »哈馬斯已有總理人選
    183. 解放日報報業集團 - 所有 489 相關報道 »陳水扁是兩岸關系麻煩制造者 武漢晨報 - 所有 179 相關報道 »</td>
    184.    <tr>
    185.   </table>
    186.  </td>
    187.  <td width="25%">
    188.   <table border=0 class="dragTable" cellspacing="0">
    189.    <tr>
    190.     <td>中關村在線</td>
    191.    </tr>
    192.    <tr>
    193.     <td>新年行情速遞 雙敏板卡低價推薦 終于等到了,映泰6600GT一降降一百 羅技G15游戲鍵盤熱力促銷,代購價僅529元 </td>
    194.    <tr>
    195.   </table></td>
    196.  <td width="25%">
    197.   <table border=0 class="dragTable" cellspacing="0">
    198.    <tr>
    199.     <td>網易商業</td>
    200.    </tr>
    201.    <tr>
    202.     <td>上海GDP增幅去年出現回落應對反傾銷 中國鞋企聯手對抗歐盟尹家緒操盤南方汽車 長安謀求曲線整體境外上市</td>
    203.    <tr>
    204.   </table>  <table border=0 class="dragTable" cellspacing="0">
    205.    <tr>
    206.     <td>黑可天下</td>
    207.    </tr>
    208.    <tr>
    209.     <td>上海GDP增幅去年出現回落應對反傾銷 中國鞋企聯手對抗歐盟尹家緒操盤南方汽車 長安謀求曲線整體境外上市</td>
    210.    <tr>
    211.   </table>
    212.  </td>
    213. </tr>
    214. </table>
    215. <input type="button" value="SHOW" onClick="_show(document.documentElement.innerHTML)" />
    216. </body>
    217. </html>



    樣式3
    1. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="content-type" content="text/html; charset=gb2312" />
    5. <meta http-equiv="content-language" content="zh-cn" />
    6. <meta name="author" content="forfor" />
    7. <meta name="keywords" content="" />
    8. <title>Demo</title>
    9. <script type="text/javascript">
    10. <!--
    11. var IE=false,FF=false,W=window,D=document,H,B,GET="getElementsByTagName",GEI="getElementById",qq=0;
    12. function fold(){
    13.  var e;
    14.  e=fixE(e);
    15.  if(e)element=fixElement(e);
    16.  element=element.parentNode.parentNode;
    17.  element.className=element.className.indexOf("hide")>0?"module":"module hide";
    18. }
    19. var Drag={
    20.  draging : false,
    21.  x : 0,
    22.  y : 0,
    23.  element : null,
    24.  fDiv : null,
    25.  ghost : null,
    26.  addEvent : function(){var a=D[GET]("li");for(var i=a.length-1;i>-1;i--)if(a[i].className=="module")a[i].onmousedown=Drag.dragStart;},
    27.  ix:2,iy:7,
    28.  ox:6,oy:7,
    29.  fx:6,fy:6,
    30.  dragStart : function (e){
    31.   if(Drag.draging)return;
    32.   var e;
    33.   e=fixE(e);
    34.   if(e)element=fixElement(e);
    35.   
    36.   /*********
    37.   var k,s="";
    38.   for(k in element)s+=k+" : "+element[k]+"<br/>";
    39.   D.getElementById("bbb").innerHTML=s;
    40.   **********/
    41.   D.getElementById("aaa").innerHTML=element.parentNode.offsetTop+ ","+element.parentNode.offsetHeight;
    42.   //測試
    43.   if(element.className!="title")return;
    44.   element=element.parentNode;
    45.   Drag.element=element;
    46.   //以上獲得當前移動的模塊
    47.   Drag.x=e.layerX?e.layerX+Drag.fx:(IE?e.x+Drag.ix:e.offsetX+Drag.ox);
    48.   Drag.y=e.layerY?e.layerY+Drag.fy:(IE?e.y+Drag.iy:e.offsetY+Drag.oy);
    49.   //鼠標相對于模塊的位置
    50.   Drop.measure();
    51.   if(e.layerX){Drag.floatIt(e);Drag.drag(e);}//fix FF
    52.   B.style.cursor="move";
    53.   D.onmousemove=Drag.drag;
    54.   D.ondragstart=function(){window.event.returnValue = false;}
    55.   D.onselectstart=function(){window.event.returnValue = false;};
    56.   D.onselect=function(){return false};
    57.   D.onmouseup=element.onmouseup=Drag.dragEnd;
    58.   element.onmousedown=null;
    59.  },
    60.  drag : function (e){
    61.   var e;
    62.   e=fixE(e);
    63.   if(!Drag.fDiv)Drag.floatIt(e);//for IE & Opera
    64.   var x=e.clientX,y=e.clientY;
    65.   Drag.fDiv.style.top=y+H.scrollTop-Drag.y+"px";
    66.   Drag.fDiv.style.left=x+H.scrollLeft-Drag.x+"px";
    67.   Drop.drop(x,y);
    68.   //statu(e);
    69.  },
    70.  dragEnd : function (e){
    71.   B.style.cursor="";
    72.   D.ondragstart=D.onmousemove=D.onselectstart=D.onselect=D.onmouseup=null;
    73.   Drag.element.onmousedown=Drag.dragStart;
    74.   if(!Drag.draging)return;
    75.   Drag.ghost.parentNode.insertBefore(Drag.element,Drag.ghost);
    76.   Drag.ghost.parentNode.removeChild(Drag.ghost);
    77.   B.removeChild(Drag.fDiv);
    78.   Drag.fDiv=null;
    79.   Drag.draging=false;
    80.   Drop.init(D[GEI]("container"));
    81.  },
    82.  floatIt : function(e){
    83.   var e,element=Drag.element;
    84.   var ghost=D.createElement("LI");
    85.   Drag.ghost=ghost;
    86.   ghost.className="module ghost";
    87.   ghost.style.height=element.offsetHeight-2+"px";
    88.   element.parentNode.insertBefore(ghost,element);
    89.   //創建模塊占位框
    90.   var fDiv=D.createElement("UL");
    91.   Drag.fDiv=fDiv;
    92.   fDiv.className="float";
    93.   B.appendChild(fDiv);
    94.   fDiv.style.width=ghost.parentNode.offsetWidth+"px";
    95.   fDiv.appendChild(element);
    96.   //創建容納模塊的浮動層
    97.   Drag.draging=true;
    98.  }
    99. }
    100. var Drop={
    101.  root : null,
    102.  index : null,
    103.  column : null,
    104.  init : function(it){
    105.   if(!it)return;
    106.   Drop.root=it;
    107.   it.firstItem=it.lastItem=null;
    108.   var a=it[GET]("ul");
    109.   for(var i=0;i<a.length;i++){
    110.    if(a[i].className!="column")continue;
    111.    if(it.firstItem==null){
    112.     it.firstItem=a[i];
    113.     a[i].previousItem=null;
    114.    }else{
    115.     a[i].previousItem=a[i-1];
    116.     a[i-1].nextItem=a[i];
    117.    }
    118.    a[i].nextItem=null;
    119.    it.lastItem=a[i];
    120.    a[i].index=i;
    121.    a[i].firstItem=a[i].lastItem=null;
    122.    var b=a[i][GET]("li");
    123.    for(var j=0;j<b.length;j++){
    124.     if(b[j].className.indexOf("module")==-1)continue;
    125.     if(a[i].firstItem==null){
    126.      a[i].firstItem=b[j];
    127.      b[j].previousItem=null;
    128.     }else{
    129.      b[j].previousItem=b[j-1];
    130.      b[j-1].nextItem=b[j];
    131.     }
    132.     b[j].nextItem=null;
    133.     a[i].lastItem=b[j];
    134.     b[j].index=i+","+j;
    135.    }
    136.   }
    137.  },
    138.  measure : function(){
    139.   if(!Drop.root)return;
    140.   var currentColumn=Drop.root.firstItem;
    141.   while(currentColumn){
    142.    var currentModule=currentColumn.firstItem;
    143.    while(currentModule){
    144.     currentModule.minY=currentModule.offsetTop;
    145.     currentModule.maxY=currentModule.minY+currentModule.offsetHeight;
    146.     currentModule=currentModule.nextItem;
    147.    }
    148.    currentColumn.minX=currentColumn.offsetLeft;
    149.    currentColumn.maxX=currentColumn.minX+currentColumn.offsetWidth;
    150.    currentColumn=currentColumn.nextItem;
    151.   }
    152.   Drop.index=Drag.element.index;
    153.  },
    154.  drop : function(x,y){
    155.   if(!Drop.root)return;
    156.   var x,y,currentColumn=Drop.root.firstItem;
    157.   while(x>currentColumn.maxX)if(currentColumn.nextItem)currentColumn=currentColumn.nextItem;else break;
    158.   var currentModule=currentColumn.lastItem;
    159.   if(currentModule)while(y<currentModule.maxY){
    160.    if(y>currentModule.minY-12){
    161.     if(Drop.index==currentModule.index)return;
    162.     Drop.index=currentModule.index;
    163.     if(currentModule.index==Drag.element.index){if(currentModule.nextItem)currentModule=currentModule.nextItem;else break;}
    164.     currentColumn.insertBefore(Drag.ghost,currentModule);
    165.     Drop.column=null;
    166.     window.status=qq++;
    167.     return;
    168.    }else if(currentModule.previousItem)currentModule=currentModule.previousItem;else return;
    169.   }
    170.   if(Drop.column==currentColumn.index)return;
    171.   currentColumn.appendChild(Drag.ghost);
    172.   Drop.index=0;
    173.   Drop.column=currentColumn.index;
    174.   window.status=qq++;
    175.  }
    176. }
    177. var webNote={
    178.  obj : null,
    179.  canEdit : function(e){
    180.   var e,element;
    181.   e=fixE(e);
    182.   element=fixElement(e);
    183.   if(element.className!='webNote')return;
    184.   if(typeof element.contentEditable!="undefined"){
    185.    element.contentEditable=true;
    186.    element.style.borderColor='red';
    187.    element.focus();
    188.    webNote.obj=element;
    189.   }
    190.  },
    191.  cannotEdit : function(){
    192.   if(!webNote.obj)return;
    193.   if(typeof webNote.obj.contentEditable!="undefined"){
    194.    webNote.obj.style.borderColor='#ffffe0';
    195.    webNote.obj.contentEditable=false;
    196.    webNote.obj=null;
    197.   }
    198.  }
    199. }
    200. function fixE(e){var e;e=e?e:(window.event?window.event:null);return e}
    201. function fixElement(e){var e;return e.target?(e.target.nodeType==3?e.target.parentNode:e.target):e.srcElement;}
    202. onload=function(){
    203.  B=D[GET]("body")[0];
    204.  H=D[GET]("html")[0];
    205.  Drop.init(D[GEI]("container"));
    206.  Drag.addEvent();
    207. }
    208. function statu(e){
    209.  var e,element;
    210.  element=fixElement(e);
    211.  var aa=D.getElementById("aaa");
    212.  aa.innerHTML="e.xy:("+e.x+","+e.y+")<br/>e.offsetXY:("+e.offsetX+","+e.offsetY+")<br/>e.clientXY:("+e.clientX+","+e.clientY+")<br/>element.offsetLeftTop:("+element.offsetLeft+","+element.offsetTop+")<br/>e.layerXY:("+e.layerX+","+e.layerY+")";
    213. }
    214. //-->
    215. </script>
    216. <style type="text/css">
    217. body,table,td,th,input,textarea,button,select{font:13px/16px Verdana,"宋體",sans-serif;}
    218. table{border-collapse:collapse;}
    219. p{margin:0px;}
    220. .container{margin:8px;}
    221. .column{width:33%;margin:0px;padding:0px;float:left;overflow:hidden;}
    222. .module{margin:5px;padding:0px;border:1px solid #dcd;position:relative;background-color:white;list-style:none;}
    223. .title{background-color:#edf;padding:1px 0px;width:100%;overflow:hidden;cursor:move;z-index:0;font-weight:bold;}
    224. .cont{padding:3px;overflow:hidden;}
    225. .hide .cont{display:none;}
    226. .pageTitle{font-weight:bold;text-align:center;}
    227. input.pageTitle{display:none;border:0px;padding:0px;width:100%;}
    228. .webNote{background-color:#ffffe0;border:1px solid #ffffe0;}
    229. textarea.webNote{display:none;overflow:hidden;padding:0px;border:0px;padding:0px;}
    230. .ghost{border:1px dashed red;}
    231. .float{position:absolute;z-index:100;margin:0px;padding:0px;overflow:hidden;list-style:none;-moz-opacity:.75;filter:Alpha(opacity=75);}
    232. </style>
    233. <!--[if IE]>
    234. <script type="text/javascript">
    235. IE=true;
    236. </script>
    237. <style type="text/css">
    238. input.pageTitle{margin:-1px;}
    239. </style>
    240. <![endif]-->
    241. <![if !IE]><![endif]>
    242. </head>
    243. <body>
    244. <center><span class="pageTitle" onclick="with(this.nextSibling){value=this.innerHTML;style.display='block';focus()};this.style.display='none';">You can input a topic here!</span><input class="pageTitle" onblur="with(this.previousSibling){D.title=innerHTML=this.value?this.value:'Demo';style.display='block';};this.style.display='none'" /></center>
    245. <div class="container" id="container">
    246.  <ul class="column">
    247.   <li class="module">
    248.    <div class="title"><span onclick="fold()">+</span> Coodinate</div>
    249.    <div class="cont" id="aaa">content</div>
    250.   </li>
    251.   <li class="module">
    252.    <div class="title"><span onclick="fold()">+</span> contentEditable</div>
    253.    <div class="cont" onclick="alert('this.contentEditable:'+this.contentEditable)">click here</div>
    254.   </li>
    255.   <li class="module">
    256.    <div class="title"><span onclick="fold()">+</span> long long ago</div>
    257.    <div class="cont">有形者 生于無形 無能生有 有歸于無<br/>是以 凡所有所相 皆是虛妄<br/>若是能見諸相非相 當知虛非真虛<br/>有生之氣 有形之狀 盡是幻也<br/>造物之所始 陰陽之所變者 謂之生 謂之死<br/>窮數達變 因形移易者 謂之化 謂之幻</br>了悟有無 參透虛實 自然遨游天地宇宙 無所阻礙<br/>是謂大幻之道</div>
    258.   </li>
    259.  </ul>
    260.  <ul class="column">
    261.   <li class="module">
    262.    <div class="title"><span onclick="fold()">+</span> this.parentNode</div>
    263.    <div class="cont"><button onclick="alert(this.parentNode.parentNode.parentNode.innerHTML)">parentNode</button></div>
    264.   </li>
    265.   <li class="module">
    266.    <div class="title"><span onclick="fold()">+</span> webNote</div>
    267.    <div class="cont"><div class="webNote" onblur="webNote.cannotEdit()" onclick="webNote.canEdit(event)">You can note something here.<br/><br/>從前有座山<br/>山里有座廟</br>廟里有個老和尚講故事</div><textarea class="webNote"></textarea></div>
    268.   </li>
    269.   <li class="module">
    270.    <div class="title"><span onclick="fold()">+</span> Google</div>
    271.    <div class="cont"><center><a style="font:bold 31px/2 Arial;">Gooooooogle</a></center></div>
    272.   </li>
    273.  </ul>
    274.  <ul class="column">
    275.   <li class="module">
    276.    <div class="title"><span onclick="fold()">+</span> pia~~</div>
    277.    <div class="cont">十里平湖霜滿天<br/>寸寸青絲愁華年<br/>對月形單忘相護<br/>只羨鴛鴦不羨仙</div>
    278.   </li>
    279.   <li class="module">
    280.    <div class="title"><span onclick="fold()">+</span> biu~~</div>
    281.    <div class="cont">您好!<br/>主人不在,您可以在biu~的一聲后留言<br/>biu~~</div>
    282.   </li>
    283.   <li class="module">
    284.    <div class="title"><span onclick="fold()">+</span> 無話可說</div>
    285.    <div class="cont" id="bbb">吃葡萄不吐葡萄皮<br/>不吃葡萄倒吐葡萄皮<br/>(字數不夠,再吃一遍......)</div>
    286.   </li>
    287.  </ul>
    288. </div>
    289. <div style="font-size:10px;line-height:14px;clear:both;margin:6px 3%;text-align:center;border:1px solid #eee;">©2006 forfor</div>
    290. </body>
    291. </html>
     
    posted on 2007-04-10 21:09 流浪汗 閱讀(2787) 評論(1)  編輯  收藏 所屬分類: 收藏夾

    評論:
    # re: javascript 移動層代碼 2008-04-02 16:32 | 李敬塔
    寫的好謝謝!  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲综合国产一区二区三区| 亚洲国产精品综合久久2007| 亚洲AV无码一区二区三区人| 免费播放在线日本感人片| 日韩亚洲国产二区| 亚洲精品蜜夜内射| 大学生高清一级毛片免费| 久久久无码精品亚洲日韩按摩| 一级黄色免费毛片| 免费观看午夜在线欧差毛片| 亚洲欧好州第一的日产suv| 在线观看日本免费a∨视频| 久久夜色精品国产噜噜亚洲AV| 成年女人毛片免费播放视频m| 亚洲色在线无码国产精品不卡| 欧美三级在线电影免费| 亚洲制服丝袜中文字幕| 啦啦啦中文在线观看电视剧免费版 | 日韩精品视频免费在线观看| 亚洲国产91在线| 国产成人精品日本亚洲专区61| 一个人在线观看视频免费| 免费萌白酱国产一区二区三区| 色窝窝亚洲av网| 亚洲国产香蕉人人爽成AV片久久 | 亚洲大片免费观看| 91麻豆精品国产自产在线观看亚洲 | 亚洲αv久久久噜噜噜噜噜| AAA日本高清在线播放免费观看| 国产人成亚洲第一网站在线播放| 男女啪啪永久免费观看网站| 国产成人亚洲毛片| 精品国产日韩亚洲一区| 国产成人久久AV免费| 亚洲精品午夜久久久伊人| 青青久在线视频免费观看| 国产无遮挡无码视频免费软件 | 成在线人免费无码高潮喷水| 亚洲gv猛男gv无码男同短文| 免费jjzz在线播放国产 | 国产高清免费在线|