亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JavaScript實現DIV層拖動及動態增加新層的方法

2024-05-06 16:20:02
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript實現DIV層拖動及動態增加新層的方法,設計javascript操作div層的拖動與增加的相關技巧,需要的朋友可以參考下

本文實例講述了JavaScript實現DIV層拖動及動態增加新層的方法。分享給大家供大家參考。具體分析如下:

無刷新添加一個新的DIV層,并可實現的該層的拖動,鼠標拖動層可移動位置,將JS部分另存為一個新文件,用到的時候從外部引入,這個拖動層代碼很流行,GG和YAHOO等大網站經常可以看到這種效果。

 

 
  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4. <title>DIV層拖動,動態增加新層的JavaScript</title> 
  5. <style> 
  6. body {margin:0px;padding:0px;font-size:12px;text-align:center;} 
  7. body > div {text-align:center; margin-right:auto; margin-left:auto;}  
  8. .content{width:900px;} 
  9. .content .left{ 
  10. float:left; 
  11. width:20%; 
  12. border:1px solid #0066CC; 
  13. margin:3px; 
  14. .content .center{ 
  15. float:left; 
  16. border:1px solid #FF0000; 
  17. margin:3px; 
  18. width:57% 
  19. .content .right{ 
  20. float:right; 
  21. width:20%; 
  22. border:1px solid #FF0000; 
  23. margin:3px 
  24. .mo{ 
  25. height:auto; 
  26. border:1px solid #CCC; 
  27. margin:3px; 
  28. background:#FFF 
  29. .mo h1{ 
  30. background:#ECF9FF; 
  31. height:18px; 
  32. padding:3px; 
  33. cursor:move 
  34. .closediv{ 
  35. cursor:default
  36. .minusspan{ 
  37. cursor:default
  38. .mo .nr{ 
  39. height:80px; 
  40. border:1px solid #F3F3F3; 
  41. margin:2px 
  42. h1{ 
  43. margin:0px; 
  44. padding:0px; 
  45. text-align:left; 
  46. font-size:12px 
  47. .dragging { 
  48. FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=60); 
  49. opacity: 0.6; 
  50. moz-opacity: 0.6 
  51. </style> 
  52. <script language="javascript"
  53. var dragobj={} 
  54. window.onerror=function(){return false
  55. var domid=12 
  56. function on_ini(){ 
  57. String.prototype.inc=function(s){return this.indexOf(s)>-1?true:false
  58. var agent=navigator.userAgent 
  59. window.isOpr=agent.inc("Opera"
  60. window.isIE=agent.inc("IE") && !isOpr 
  61. window.isMoz=agent.inc("Mozilla") && !isOpr && !isIE 
  62. if(isMoz){ 
  63. Event.prototype.__defineGetter__("x",function(){return this.clientX+2}) 
  64. Event.prototype.__defineGetter__("y",function(){return this.clientY+2}) 
  65. basic_ini() 
  66. function basic_ini(){ 
  67. window.$=function(obj){return typeof(obj)=="string"?document.getElementById(obj):obj} 
  68. window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}} 
  69. window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}} 
  70. window.onload=function(){ 
  71. on_ini() 
  72. var o=document.getElementsByTagName("h1"
  73. for(var i=0;i<o.length;i++){ 
  74. o[i].onmousedown=addevent; 
  75. //添加折疊和關閉按鈕 
  76. var tt = document.createElement("div"); 
  77. tt.style.cssText = "float:left"
  78.  
  79. var span = document.createElement("span"); 
  80. span.innerHTML = "--"+o[i].innerHTML; 
  81. span.style.cssText = "cursor:default;"
  82. span.onmousedown = minusDiv; 
  83. tt.appendChild(span); 
  84.  
  85. var close = document.createElement("div"); 
  86. close.innerHTML = "X"
  87. close.style.cssText = "cursor:default;float:right"
  88. close.onmousedown = closeDiv; 
  89. o[i].innerHTML = ""
  90. o[i].appendChild(tt); 
  91. o[i].appendChild(close); 
  92. //折疊或者顯示層 
  93. function minusDiv(e) 
  94. e=e||event 
  95. var nr = this.parentNode.parentNode.nextSibling; //取得內容層 
  96. nr.style.display = nr.style.display==""?"none":""
  97. //移出層 
  98. function closeDiv(e) 
  99. e=e||event 
  100. var mdiv = this.parentNode.parentNode; //取得目標層 
  101. oDel(mdiv); 
  102. function addevent(e){ 
  103. if(dragobj.o!=null
  104. return false 
  105. e=e||event 
  106. dragobj.o=this.parentNode 
  107. dragobj.xy=getxy(dragobj.o) 
  108. dragobj.xx=new Array((e.x-dragobj.xy[1]),(e.y-dragobj.xy[0])) 
  109. //dragobj.o.className = 'dragging'; 
  110. dragobj.o.style.width=dragobj.xy[2]+"px" 
  111. dragobj.o.style.height=dragobj.xy[3]+"px" 
  112. dragobj.o.style.left=(e.x-dragobj.xx[0])+"px" 
  113. dragobj.o.style.top=(e.y-dragobj.xx[1])+"px" 
  114. dragobj.o.style.position="absolute" 
  115. dragobj.o.style.filter='alpha(opacity=60)'//添加拖動透明效果 
  116. var om=document.createElement("div"
  117. dragobj.otemp=om 
  118. om.style.width=dragobj.xy[2]+"px" 
  119. om.style.height=dragobj.xy[3]+"px" 
  120. om.style.border = "1px dashed red"//ikaiser添加,實現虛線框 
  121. dragobj.o.parentNode.insertBefore(om,dragobj.o) 
  122. return false 
  123. document.onselectstart=function(){return false
  124. window.onfocus=function(){document.onmouseup()} 
  125. window.onblur=function(){document.onmouseup()} 
  126. document.onmouseup=function(){ 
  127. if(dragobj.o!=null){ 
  128. dragobj.o.style.width="auto" 
  129. dragobj.o.style.height="auto" 
  130. dragobj.otemp.parentNode.insertBefore(dragobj.o,dragobj.otemp) 
  131. dragobj.o.style.position="" 
  132. oDel(dragobj.otemp) 
  133. dragobj={} 
  134. document.onmousemove=function(e){ 
  135. e=e||event 
  136. if(dragobj.o!=null){ 
  137. dragobj.o.style.left=(e.x-dragobj.xx[0])+"px" 
  138. dragobj.o.style.top=(e.y-dragobj.xx[1])+"px" 
  139. createtmpl(e, dragobj.o) //傳遞當前拖動對象 
  140. function getxy(e){ 
  141. var a=new Array() 
  142. var t=e.offsetTop; 
  143. var l=e.offsetLeft; 
  144. var w=e.offsetWidth; 
  145. var h=e.offsetHeight; 
  146. while(e=e.offsetParent){ 
  147. t+=e.offsetTop; 
  148. l+=e.offsetLeft; 
  149. a[0]=t;a[1]=l;a[2]=w;a[3]=h 
  150. return a; 
  151. function inner(o,e){ 
  152. var a=getxy(o) 
  153. if(e.x>a[1] && e.x<(a[1]+a[2]) && e.y>a[0] && e.y<(a[0]+a[3])){ 
  154. if(e.y<(a[0]+a[3]/2)) 
  155. return 1; 
  156. else 
  157. return 2; 
  158. }else 
  159. return 0; 
  160. //將當前拖動層在拖動時可變化大小,預覽效果 
  161. function createtmpl(e, elm){ 
  162. for(var i=0;i<domid;i++){ 
  163. if(document.getElementById("m"+i) == null//已經移出的層不再遍歷 
  164. continue
  165. if($("m"+i)==dragobj.o) 
  166. continue 
  167. var b=inner($("m"+i),e) 
  168. if(b==0) 
  169. continue 
  170. dragobj.otemp.style.width=$("m"+i).offsetWidth 
  171. elm.style.width = $("m"+i).offsetWidth; 
  172. //1為下移,2為上移 
  173. if(b==1){ 
  174. $("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i)) 
  175. }else
  176. if($("m"+i).nextSibling==null){ 
  177. $("m"+i).parentNode.appendChild(dragobj.otemp) 
  178. }else
  179. $("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i).nextSibling) 
  180. return 
  181. for(var j=0;j<3;j++){ 
  182. if($("dom"+j).innerHTML.inc("div")||$("dom"+j).innerHTML.inc("DIV")) 
  183. continue 
  184. var op=getxy($("dom"+j)) 
  185. if(e.x>(op[1]+10) && e.x<(op[1]+op[2]-10)){ 
  186. $("dom"+j).appendChild(dragobj.otemp) 
  187. dragobj.otemp.style.width=(op[2]-10)+"px" 
  188. function add_div() 
  189. var o=document.createElement("div"
  190. o.className="mo" 
  191. o.id="m"+domid 
  192. $('dom0').appendChild(o) 
  193. o.innerHTML="<h1>dom"+domid+"</h1><div class=nr></div>" 
  194. o.getElementsByTagName("h1")[0].onmousedown=addevent 
  195. domid++ 
  196. </script> 
  197. </head> 
  198. <body> 
  199. <INPUT TYPE="button" value="添加一個新的DIV層" onclick="add_div();"
  200. <div class=content> 
  201. <div class=left id=dom0> 
  202. <div class=mo id=m0> 
  203. <h1>dom0</h1> 
  204. <div class="nr"></div> 
  205. </div> 
  206. <div class=mo id=m1> 
  207. <h1>dom1</h1><div class="nr"></div> 
  208. </div> 
  209. <div class=mo id=m2><h1>dom2</h1><div class="nr"></div></div> 
  210. <div class=mo id=m3><h1>dom3</h1><div class="nr"></div></div> 
  211. </div> 
  212. <div class=center id=dom1> 
  213. <div class=mo id=m4><h1>dom4</h1><div class="nr"></div></div> 
  214. <div class=mo id=m5><h1>dom5</h1><div class="nr"></div></div> 
  215. </div> 
  216. <div class=right id=dom2> 
  217. <div class=mo id=m8><h1>dom8</h1><div class="nr"></div></div> 
  218. <div class=mo id=m9><h1>dom9</h1><div class="nr"></div></div> 
  219. </div> 
  220. </div> 
  221. </body> 
  222. </html> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久在线免费观看| 久久人人爽人人爽爽久久| 久久精品免费播放| 国产视频精品va久久久久久| 国产精品视频久久| 欧美国产日韩二区| 2020久久国产精品| 久久久亚洲国产天美传媒修理工| 狠狠躁天天躁日日躁欧美| 国产精品男女猛烈高潮激情| 久久成人精品电影| 亚洲丝袜av一区| 国产日韩精品入口| 国产欧美一区二区三区久久人妖| 欧美一级黑人aaaaaaa做受| 日韩大胆人体377p| 午夜精品一区二区三区视频免费看| 欧美在线一级视频| 精品二区三区线观看| 色午夜这里只有精品| 国产成人自拍视频在线观看| 亚洲影院色无极综合| 亚洲激情国产精品| 在线电影av不卡网址| 97热在线精品视频在线观看| 国产精品一区=区| 成人欧美一区二区三区在线湿哒哒| 国产成人涩涩涩视频在线观看| 欧美一级电影久久| 黑人巨大精品欧美一区二区免费| 国产日韩综合一区二区性色av| 社区色欧美激情 | 久久99国产精品自在自在app| 欧美日韩精品中文字幕| 欧美专区中文字幕| 人人做人人澡人人爽欧美| 国产97在线观看| 在线精品高清中文字幕| 欧美激情在线观看视频| 97精品在线观看| 亚洲男人的天堂网站| 欧美亚洲在线播放| 俺也去精品视频在线观看| 68精品国产免费久久久久久婷婷| 日本最新高清不卡中文字幕| 久久精品最新地址| 亚洲欧美日韩中文在线| 成人亚洲综合色就1024| 国产一区二区在线免费视频| 清纯唯美亚洲综合| 久久久久久久久久久免费| 中文字幕日韩免费视频| 欧美激情在线观看视频| 最近2019中文字幕mv免费看| 国产精品一区二区久久久久| 亚洲欧美日韩精品久久奇米色影视| 在线精品视频视频中文字幕| 97免费在线视频| 国产精品久久激情| 成人免费网站在线观看| 26uuu久久噜噜噜噜| 国产精品久久久久久久久借妻| 亚洲视屏在线播放| 人人做人人澡人人爽欧美| 亚洲精品视频播放| 色综合久久中文字幕综合网小说| 亚洲欧美日韩精品久久亚洲区| 久久的精品视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲精品狠狠操| 欧美成人精品不卡视频在线观看| 欧美在线一级视频| 热re91久久精品国99热蜜臀| 久久成年人免费电影| 亚洲精品在线不卡| 欧美一二三视频| 久久久精品在线观看| 国产亚洲精品美女久久久久| 成人激情免费在线| 亚洲第一在线视频| 久久亚洲成人精品| 国产不卡视频在线| 狠狠躁天天躁日日躁欧美| 日韩在线免费高清视频| 亚洲男人天天操| 欧美激情综合色| 91精品久久久久久久久久久久久| 久久99热精品| 欧美亚洲在线观看| 日韩免费黄色av| 久久男人av资源网站| 日韩精品视频免费在线观看| 在线播放国产一区中文字幕剧情欧美| 中文字幕日韩av电影| 国产91精品久久久久| 亚洲欧美日本另类| 日韩精品一区二区视频| 亚洲成人精品在线| 日日摸夜夜添一区| 亚洲在线视频福利| 在线观看视频99| 久久免费视频在线观看| 久久久精品美女| 亚洲天堂成人在线| 国产suv精品一区二区| 亚洲欧美成人一区二区在线电影| 欧美精品久久久久久久| 中文字幕国产精品久久| 亚洲人成自拍网站| 在线观看欧美www| 欧美高跟鞋交xxxxxhd| 日韩亚洲成人av在线| 欧美大片网站在线观看| 不卡伊人av在线播放| 欧美色视频日本版| 国产一区二区色| 日韩有码在线观看| 国产成人亚洲综合| 97香蕉久久夜色精品国产| 亚洲自拍偷拍区| 91在线高清免费观看| 91精品国产91久久久| 色99之美女主播在线视频| 精品久久久一区二区| 91伊人影院在线播放| 欧美一级淫片丝袜脚交| 久久免费精品视频| 中文字幕亚洲色图| 久久久久久久成人| 91亚洲国产成人精品性色| 亚洲欧洲在线看| 中文字幕免费精品一区高清| 岛国av在线不卡| 永久免费毛片在线播放不卡| 中文字幕日韩专区| 亚洲欧美国产精品va在线观看| 亚洲精品白浆高清久久久久久| 欧美大秀在线观看| 亚洲欧美在线一区二区| 97超级碰在线看视频免费在线看| 亚洲第一精品电影| 欧美成人三级视频网站| 国产精品亚洲激情| 久久精品国产综合| 久久久久久久久久久网站| 国产福利视频一区| 日韩精品视频在线观看网址| 色狠狠av一区二区三区香蕉蜜桃| 欧美日韩一区二区免费在线观看| 亚洲精品成人av| 日韩欧亚中文在线| 亚洲视频第一页| 亚洲精品福利资源站| 亚洲人成在线一二| 日韩高清电影免费观看完整| 夜夜狂射影院欧美极品| 国产日韩av在线播放| 国产一区二区黑人欧美xxxx| 日本国产一区二区三区| 九色成人免费视频| 中文字幕久精品免费视频| 岛国av一区二区在线在线观看| 欧美丰满少妇xxxxx做受| 中国china体内裑精亚洲片|