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

首頁 > 語言 > JavaScript > 正文

javascript實現漂亮的拖動層,窗口拖拽特效

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

一個可關閉、可隨意拖動位置的網頁彈出層代碼,美化的相當漂亮,簡潔實用,還可拖動改變大小,通過八個方向改變大小,學習這類特效編寫的網頁設計者可參閱一下

javascript實現漂亮的拖動層,窗口拖拽特效

 

 
  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=utf-8" /> 
  5. <title>窗口拖拽(改變大小/最小化/最大化/還原/關閉)</title> 
  6. <style type="text/css">  
  7. body,div,h2{margin:0;padding:0;} 
  8. body{background:url(/jscss/demoimg/201205/bg.jpg);font:12px/1.5 /5fae/8f6f/96c5/9ed1;color:#333;} 
  9. #drag{position:absolute;top:100px;left:100px;width:300px;height:160px;background:#e9e9e9;border:1px solid #444;border-radius:5px;box-shadow:0 1px 3px 2px #666;} 
  10. #drag .title{position:relative;height:27px;margin:5px;} 
  11. #drag .title h2{font-size:14px;height:27px;line-height:24px;border-bottom:1px solid #A1B4B0;} 
  12. #drag .title div{position:absolute;height:19px;top:2px;right:0;} 
  13. #drag .title a,a.open{float:left;width:21px;height:19px;display:block;margin-left:5px;background:url(/jscss/demoimg/201205/tool.png) no-repeat;} 
  14. a.open{position:absolute;top:10px;left:50%;margin-left:-10px;background-position:0 0;} 
  15. a.open:hover{background-position:0 -29px;} 
  16. #drag .title a.min{background-position:-29px 0;} 
  17. #drag .title a.min:hover{background-position:-29px -29px;} 
  18. #drag .title a.max{background-position:-60px 0;} 
  19. #drag .title a.max:hover{background-position:-60px -29px;} 
  20. #drag .title a.revert{background-position:-149px 0;display:none;} 
  21. #drag .title a.revert:hover{background-position:-149px -29px;} 
  22. #drag .title a.close{background-position:-89px 0;} 
  23. #drag .title a.close:hover{background-position:-89px -29px;} 
  24. #drag .content{overflow:auto;margin:0 5px;} 
  25. #drag .resizeBR{position:absolute;width:14px;height:14px;right:0;bottom:0;overflow:hidden;cursor:nw-resize;background:url(/jscss/demoimg/201205/resize.png) no-repeat;} 
  26. #drag .resizeL,#drag .resizeT,#drag .resizeR,#drag .resizeB,#drag .resizeLT,#drag .resizeTR,#drag .resizeLB{position:absolute;background:#000;overflow:hidden;opacity:0;filter:alpha 
  27.  
  28.  
  29. (opacity=0);} 
  30. #drag .resizeL,#drag .resizeR{top:0;width:5px;height:100%;cursor:w-resize;} 
  31. #drag .resizeR{right:0;} 
  32. #drag .resizeT,#drag .resizeB{width:100%;height:5px;cursor:n-resize;} 
  33. #drag .resizeT{top:0;} 
  34. #drag .resizeB{bottom:0;} 
  35. #drag .resizeLT,#drag .resizeTR,#drag .resizeLB{width:8px;height:8px;background:#FF0;} 
  36. #drag .resizeLT{top:0;left:0;cursor:nw-resize;} 
  37. #drag .resizeTR{top:0;right:0;cursor:ne-resize;} 
  38. #drag .resizeLB{left:0;bottom:0;cursor:ne-resize;} 
  39. </style> 
  40. <script type="text/javascript">  
  41. /*-------------------------- + 
  42. 獲取id, class, tagName 
  43. +-------------------------- */ 
  44. var get = { 
  45. byId: function(id) { 
  46. return typeof id === "string" ? document.getElementById(id) : id 
  47. }, 
  48. byClass: function(sClass, oParent) { 
  49. var aClass = []; 
  50. var reClass = new RegExp("(^| )" + sClass + "( |$)"); 
  51. var aElem = this.byTagName("*", oParent); 
  52. for (var i = 0; i < aElem.length; i++) reClass.test(aElem[i].className) && aClass.push(aElem[i]); 
  53. return aClass 
  54. }, 
  55. byTagName: function(elem, obj) { 
  56. return (obj || document).getElementsByTagName(elem) 
  57. }; 
  58. var dragMinWidth = 250; 
  59. var dragMinHeight = 124; 
  60. /*-------------------------- + 
  61. 拖拽函數 
  62. +-------------------------- */ 
  63. function drag(oDrag, handle) 
  64. var disX = dixY = 0; 
  65. var oMin = get.byClass("min", oDrag)[0]; 
  66. var oMax = get.byClass("max", oDrag)[0]; 
  67. var oRevert = get.byClass("revert", oDrag)[0]; 
  68. var oClose = get.byClass("close", oDrag)[0]; 
  69. handle = handle || oDrag; 
  70. handle.style.cursor = "move"
  71. handle.onmousedown = function (event) 
  72. var event = event || window.event; 
  73. disX = event.clientX - oDrag.offsetLeft; 
  74. disY = event.clientY - oDrag.offsetTop; 
  75.  
  76. document.onmousemove = function (event) 
  77. var event = event || window.event; 
  78. var iL = event.clientX - disX; 
  79. var iT = event.clientY - disY; 
  80. var maxL = document.documentElement.clientWidth - oDrag.offsetWidth; 
  81. var maxT = document.documentElement.clientHeight - oDrag.offsetHeight; 
  82.  
  83. iL <= 0 && (iL = 0); 
  84. iT <= 0 && (iT = 0); 
  85. iL >= maxL && (iL = maxL); 
  86. iT >= maxT && (iT = maxT); 
  87.  
  88. oDrag.style.left = iL + "px"
  89. oDrag.style.top = iT + "px"
  90.  
  91. return false 
  92. }; 
  93.  
  94. document.onmouseup = function () 
  95. document.onmousemove = null
  96. document.onmouseup = null
  97. this.releaseCapture && this.releaseCapture() 
  98. }; 
  99. this.setCapture && this.setCapture(); 
  100. return false 
  101. };  
  102. //最大化按鈕 
  103. oMax.onclick = function () 
  104. oDrag.style.top = oDrag.style.left = 0; 
  105. oDrag.style.width = document.documentElement.clientWidth - 2 + "px"
  106. oDrag.style.height = document.documentElement.clientHeight - 2 + "px"
  107. this.style.display = "none"
  108. oRevert.style.display = "block"
  109. }; 
  110. //還原按鈕 
  111. oRevert.onclick = function () 
  112. {  
  113. oDrag.style.width = dragMinWidth + "px"
  114. oDrag.style.height = dragMinHeight + "px"
  115. oDrag.style.left = (document.documentElement.clientWidth - oDrag.offsetWidth) / 2 + "px"
  116. oDrag.style.top = (document.documentElement.clientHeight - oDrag.offsetHeight) / 2 + "px"
  117. this.style.display = "none"
  118. oMax.style.display = "block"
  119. }; 
  120. //最小化按鈕 
  121. oMin.onclick = oClose.onclick = function () 
  122. oDrag.style.display = "none"
  123. var oA = document.createElement("a"); 
  124. oA.className = "open"
  125. oA.href = "javascript:;"
  126. oA.title = "還原"
  127. document.body.appendChild(oA); 
  128. oA.onclick = function () 
  129. oDrag.style.display = "block"
  130. document.body.removeChild(this); 
  131. this.onclick = null
  132. }; 
  133. }; 
  134. //阻止冒泡 
  135. oMin.onmousedown = oMax.onmousedown = oClose.onmousedown = function (event) 
  136. this.onfocus = function () {this.blur()}; 
  137. (event || window.event).cancelBubble = true 
  138.  
  139. }; 
  140. /*-------------------------- + 
  141. 改變大小函數 
  142. +-------------------------- */ 
  143. function resize(oParent, handle, isLeft, isTop, lockX, lockY) 
  144. handle.onmousedown = function (event) 
  145. var event = event || window.event; 
  146. var disX = event.clientX - handle.offsetLeft; 
  147. var disY = event.clientY - handle.offsetTop; 
  148.  
  149. var iParentTop = oParent.offsetTop; 
  150. var iParentLeft = oParent.offsetLeft; 
  151. var iParentWidth = oParent.offsetWidth; 
  152. var iParentHeight = oParent.offsetHeight; 
  153. document.onmousemove = function (event) 
  154. var event = event || window.event; 
  155. var iL = event.clientX - disX; 
  156. var iT = event.clientY - disY; 
  157. var maxW = document.documentElement.clientWidth - oParent.offsetLeft - 2; 
  158. var maxH = document.documentElement.clientHeight - oParent.offsetTop - 2; 
  159. var iW = isLeft ? iParentWidth - iL : 
  160.  
  161. handle.offsetWidth + iL; 
  162. var iH = isTop ? iParentHeight - iT : handle.offsetHeight + iT; 
  163. isLeft && (oParent.style.left = iParentLeft + iL + "px"); 
  164. isTop && (oParent.style.top = iParentTop + iT + "px"); 
  165. iW < dragMinWidth && (iW = dragMinWidth); 
  166. iW > maxW && (iW = maxW); 
  167. lockX || (oParent.style.width = iW + "px"); 
  168. iH < dragMinHeight && (iH = dragMinHeight); 
  169. iH > maxH && (iH = maxH); 
  170. lockY || (oParent.style.height = iH + "px"); 
  171. if((isLeft && iW == dragMinWidth) || (isTop && iH == dragMinHeight)) document.onmousemove = null
  172.  
  173. return false;  
  174. }; 
  175. document.onmouseup = function () 
  176. document.onmousemove = null
  177. document.onmouseup = null
  178. }; 
  179. return false
  180. }; 
  181. window.onload = window.onresize = function () 
  182. var oDrag = document.getElementById("drag"); 
  183. var oTitle = get.byClass("title", oDrag)[0]; 
  184. var oL = get.byClass("resizeL", oDrag)[0]; 
  185. var oT = get.byClass("resizeT", oDrag)[0]; 
  186. var oR = get.byClass("resizeR", oDrag)[0]; 
  187. var oB = get.byClass("resizeB", oDrag)[0]; 
  188. var oLT = get.byClass("resizeLT", oDrag)[0]; 
  189. var oTR = get.byClass("resizeTR", oDrag)[0]; 
  190. var oBR = get.byClass("resizeBR", oDrag)[0]; 
  191. var oLB = get.byClass("resizeLB", oDrag)[0]; 
  192.  
  193. drag(oDrag, oTitle); 
  194. //四角 
  195. resize(oDrag, oLT, truetruefalsefalse); 
  196. resize(oDrag, oTR, falsetruefalsefalse); 
  197. resize(oDrag, oBR, falsefalsefalsefalse); 
  198. resize(oDrag, oLB, truefalsefalsefalse); 
  199. //四邊 
  200. resize(oDrag, oL, truefalsefalsetrue); 
  201. resize(oDrag, oT, falsetruetruefalse); 
  202. resize(oDrag, oR, falsefalsefalsetrue); 
  203. resize(oDrag, oB, falsefalsetruefalse); 
  204.  
  205. oDrag.style.left = (document.documentElement.clientWidth - oDrag.offsetWidth) / 2 + "px"
  206. oDrag.style.top = (document.documentElement.clientHeight - oDrag.offsetHeight) / 2 + "px"
  207. </script> 
  208. </head> 
  209. <body> 
  210. <div id="drag"
  211. <div class="title"
  212. <h2>這是一個可以拖動的窗口</h2> 
  213. <div> 
  214. <a class="min" href="javascript:;" title="最小化"></a> 
  215. <a class="max" href="javascript:;" title="最大化"></a> 
  216. <a class="revert" href="javascript:;" title="還原"></a> 
  217. <a class="close" href="javascript:;" title="關閉"></a> 
  218. </div> 
  219. </div> 
  220. <div class="resizeL"></div> 
  221. <div class="resizeT"></div> 
  222. <div class="resizeR"></div> 
  223. <div class="resizeB"></div> 
  224. <div class="resizeLT"></div> 
  225. <div class="resizeTR"></div> 
  226. <div class="resizeBR"></div> 
  227. <div class="resizeLB"></div> 
  228. <div class="content"
  229. ① 窗口可以拖動;<br /> 
  230. ② 窗口可以通過八個方向改變大?。?lt;br /> 
  231. ③ 窗口可以最小化、最大化、還原、關閉;<br /> 
  232. ④ 限制窗口最小寬度/高度。 
  233. </div>  
  234. </div> 
  235. </body> 
  236. </html> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91黑丝在线观看| 日韩免费看的电影电视剧大全| xvideos亚洲人网站| 成人性生交xxxxx网站| 国产91露脸中文字幕在线| 91久久久久久久一区二区| 国产一区二区三区在线播放免费观看| 日本精品免费一区二区三区| 国产亚洲精品久久久久久| 久久久999精品免费| 深夜福利亚洲导航| 欧美性生交xxxxx久久久| 国产综合福利在线| 日韩精品999| 欧美乱大交xxxxx| 国产精品激情av电影在线观看| 国产精品视频免费在线| 中文字幕亚洲一区在线观看| 日韩网站免费观看高清| 亚洲成人黄色在线| 国产欧美日韩中文字幕| 亚洲国产欧美一区| 国产欧美日韩中文字幕| www国产精品视频| 精品激情国产视频| 欧美日韩国产成人| 成人黄色av网站| 在线亚洲国产精品网| 97精品国产91久久久久久| 91探花福利精品国产自产在线| 亚洲国内高清视频| 国产精品高清在线观看| 久久精品人人做人人爽| 国产精品视频一区二区三区四| 久久99久国产精品黄毛片入口| 欧美巨乳美女视频| 亚洲精品丝袜日韩| 精品呦交小u女在线| 成人免费自拍视频| 综合国产在线观看| 亚洲午夜色婷婷在线| 亚洲经典中文字幕| 久久九九全国免费精品观看| 亚洲精品国产精品久久清纯直播| 欧美日韩国产精品专区| 欧美老肥婆性猛交视频| 黑人巨大精品欧美一区免费视频| 青青草原一区二区| 日韩免费观看av| 日韩高清免费在线| 色偷偷av一区二区三区| 国产剧情日韩欧美| 91亚洲精品在线观看| 国产视频精品一区二区三区| 亚洲变态欧美另类捆绑| 欧美午夜视频在线观看| 136fldh精品导航福利| 亚洲精品在线观看www| 久久精品亚洲一区| 社区色欧美激情 | 久久久国产精品免费| 国产精品福利在线观看网址| 高清视频欧美一级| 国产精品视频中文字幕91| 久久久久久久久中文字幕| 91精品视频免费| 91日本在线观看| 日韩欧美在线看| 91亚洲国产成人久久精品网站| 欧美大片在线看| 久久99精品久久久久久青青91| 亚洲一区亚洲二区亚洲三区| 欧美激情影音先锋| 亚洲精品久久7777777| 精品福利免费观看| 福利视频导航一区| 久久精品免费电影| 欧美极品少妇全裸体| 国产精品久久av| 亚洲美女又黄又爽在线观看| 美女999久久久精品视频| 亚洲春色另类小说| 日韩国产精品亚洲а∨天堂免| 成人黄色av免费在线观看| 国产精品美乳一区二区免费| 久久影视三级福利片| 欧美在线激情网| 中文字幕精品影院| 欧美性猛交xxxx富婆弯腰| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美日韩另类| 性视频1819p久久| 久久久久亚洲精品成人网小说| 亚洲免费人成在线视频观看| 狠狠久久亚洲欧美专区| 久久久久久久色| 一道本无吗dⅴd在线播放一区| 午夜精品一区二区三区av| 亚洲国产精品福利| 日韩欧美亚洲国产一区| 久久久亚洲精选| 国产成人极品视频| 日韩视频免费在线| 91久久精品久久国产性色也91| 亚洲美女av在线| 亚洲欧洲国产精品| 亚洲欧洲xxxx| 97国产在线视频| 成人av在线网址| 欧美日韩中文字幕| 欧美成人精品一区二区| 日韩在线视频导航| 欧美激情免费在线| 亚洲国产欧美一区二区三区同亚洲| 国产视频在线观看一区二区| 欧美日韩在线第一页| 色婷婷综合成人av| 中文字幕日韩欧美在线视频| 国产精品27p| 色噜噜狠狠狠综合曰曰曰88av| 成人激情免费在线| 亚洲精品影视在线观看| 久久久久久久久国产精品| 久久久久免费精品国产| 欧美日韩在线视频首页| 中文字幕综合在线| 孩xxxx性bbbb欧美| 亚洲人成绝费网站色www| 青草青草久热精品视频在线网站| 日韩在线观看电影| 欧美国产精品人人做人人爱| 精品免费在线观看| 精品久久久国产精品999| 欧美激情一区二区三区成人| 亚洲色图18p| 国产精品99久久久久久www| 亚洲午夜久久久久久久| 欧美电影免费观看电视剧大全| 欧美日韩国产一区二区三区| 欧美性猛交99久久久久99按摩| 91中文字幕在线观看| 2019亚洲男人天堂| 亚洲女人天堂视频| 亚洲午夜未删减在线观看| 亚洲天堂av在线免费| 国产精品久久久久久av下载红粉| 青青精品视频播放| 成人xxxxx| 在线观看国产精品淫| 午夜精品久久久久久久久久久久久| 国产精品v片在线观看不卡| 欧美亚洲在线视频| 亚洲精品成人免费| 中文在线资源观看视频网站免费不卡| 欧美中文在线字幕| 亚洲免费av网址| 国产成人拍精品视频午夜网站| 亚洲白拍色综合图区| 久久伊人免费视频| 夜夜嗨av一区二区三区四区| 亚洲视频综合网| 欧美性xxxxx极品娇小| 日韩av网址在线观看| 97福利一区二区|