首页 > 语言 > JavaScript > 正文

javascript实现可拖动变色并关闭层窗口实例

2024-05-06 16:20:25
字体:
来源:转载
供稿:网友

这篇文章主要介绍了javascript实现可拖动变色并关闭层窗口的方法,涉及javascript操作层的样式与属性的相关技巧,需要的朋友可以参考下

本文实例讲述了javascript实现可拖动变色并关闭层窗口的方法。分享给大家供大家参考。具体分析如下:

这是一款基于javascript+CSS实现层拖动的代码,不同的是它在拖动的时候窗口会变色,使操作体验更好一些,你可以运行代码查看效果。它还可以显示/隐藏或关闭打开的效果,没事的时候推敲一下

 

 
  1. <html> 
  2. <head> 
  3. <title>拖动窗口</title> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
  5. <style type='text/css'
  6. <!-- 
  7. body{font-size:12px;} 
  8. a:visited{text-decoration:none;color:slategray;} 
  9. a:hover{text-decoration:underline;color:slategray;} 
  10. a:link{text-decoration:none;color:slategray;} 
  11. --> 
  12. </style> 
  13. <script language=JScript> 
  14. <!-- 
  15. var x0=0,y0=0,x1=0,y1=0; 
  16. var offx=6,offy=6; 
  17. var moveable=false
  18. var hover='orange',normal='#336699';//color; 
  19. var index=10000;//z-index; 
  20. //开始拖动; 
  21. function startDrag(obj) 
  22. if(event.button==1) 
  23. //锁定标题栏; 
  24. obj.setCapture(); 
  25. //定义对象; 
  26. var win = obj.parentNode; 
  27. var sha = win.nextSibling; 
  28. //记录鼠标和层位置; 
  29. x0 = event.clientX; 
  30. y0 = event.clientY; 
  31. x1 = parseInt(win.style.left); 
  32. y1 = parseInt(win.style.top); 
  33. //记录颜色; 
  34. normal = obj.style.backgroundColor; 
  35. //改变风格; 
  36. obj.style.backgroundColor = hover; 
  37. win.style.borderColor = hover; 
  38. obj.nextSibling.style.color = hover; 
  39. sha.style.left = x1 + offx; 
  40. sha.style.top = y1 + offy; 
  41. moveable = true
  42. //拖动; 
  43. function drag(obj) 
  44. if(moveable) 
  45. var win = obj.parentNode; 
  46. var sha = win.nextSibling; 
  47. win.style.left = x1 + event.clientX - x0; 
  48. win.style.top = y1 + event.clientY - y0; 
  49. sha.style.left = parseInt(win.style.left) + offx; 
  50. sha.style.top = parseInt(win.style.top) + offy; 
  51. //停止拖动; 
  52. function stopDrag(obj) 
  53. if(moveable) 
  54. var win = obj.parentNode; 
  55. var sha = win.nextSibling; 
  56. var msg = obj.nextSibling; 
  57. win.style.borderColor = normal; 
  58. obj.style.backgroundColor = normal; 
  59. msg.style.color = normal; 
  60. sha.style.left = obj.parentNode.style.left; 
  61. sha.style.top = obj.parentNode.style.top; 
  62. obj.releaseCapture(); 
  63. moveable = false
  64. //获得焦点; 
  65. function getFocus(obj) 
  66. if(obj.style.zIndex!=index) 
  67. index = index + 2; 
  68. var idx = index; 
  69. obj.style.zIndex=idx; 
  70. obj.nextSibling.style.zIndex=idx-1; 
  71. //最小化; 
  72. function min(obj) 
  73. var win = obj.parentNode.parentNode; 
  74. var sha = win.nextSibling; 
  75. var tit = obj.parentNode; 
  76. var msg = tit.nextSibling; 
  77. var flg = msg.style.display=="none"
  78. if(flg) 
  79. win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2; 
  80. sha.style.height = win.style.height; 
  81. msg.style.display = "block"
  82. obj.innerHTML = "0"
  83. else 
  84. win.style.height = parseInt(tit.style.height) + 2*2; 
  85. sha.style.height = win.style.height; 
  86. obj.innerHTML = "2"
  87. msg.style.display = "none"
  88. //创建一个对象; 
  89. function xWin(id,w,h,l,t,tit,msg) 
  90. index = index+2; 
  91. this.id = id; 
  92. this.width = w; 
  93. this.height = h; 
  94. this.left = l; 
  95. this.top = t; 
  96. this.zIndex = index; 
  97. this.title = tit; 
  98. this.message = msg; 
  99. this.obj = null
  100. this.bulid = bulid; 
  101. this.bulid(); 
  102. //初始化; 
  103. function bulid() 
  104. var str = "" 
  105. "<div id=xMsg" + this.id + " " 
  106. "style='" 
  107. "z-index:" + this.zIndex + ";" 
  108. "width:" + this.width + ";" 
  109. "height:" + this.height + ";" 
  110. "left:" + this.left + ";" 
  111. "top:" + this.top + ";" 
  112. "background-color:" + normal + ";" 
  113. "color:" + normal + ";" 
  114. "font-size:8pt;" 
  115. "font-family:Tahoma;" 
  116. "position:absolute;" 
  117. "cursor:default;" 
  118. "border:2px solid " + normal + ";" 
  119. "' " 
  120. "onmousedown='getFocus(this)'>" 
  121. "<div " 
  122. "style='" 
  123. "background-color:" + normal + ";" 
  124. "width:" + (this.width-2*2) + ";" 
  125. "height:20;" 
  126. "color:white;" 
  127. "' " 
  128. "onmousedown='startDrag(this)' " 
  129. "onmouseup='stopDrag(this)' " 
  130. "onmousemove='drag(this)' " 
  131. "ondblclick='min(this.childNodes[1])'" 
  132. ">" 
  133. "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'>" + this.title + "</span>" 
  134. "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>" 
  135. "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide(/""+this.id+"/",null)'>r</span>" 
  136. "</div>" 
  137. "<div style='" 
  138. "width:100%;" 
  139. "height:" + (this.height-20-4) + ";" 
  140. "background-color:white;" 
  141. "line-height:14px;" 
  142. "word-break:break-all;" 
  143. "padding:3px;" 
  144. "'>" + this.message + "</div>" 
  145. "</div>" 
  146. "<div id=xMsg" + this.id + "bg style='" 
  147. "width:" + this.width + ";" 
  148. "height:" + this.height + ";" 
  149. "top:" + this.top + ";" 
  150. "left:" + this.left + ";" 
  151. "z-index:" + (this.zIndex-1) + ";" 
  152. "position:absolute;" 
  153. "background-color:black;" 
  154. "filter:alpha(opacity=40);" 
  155. "'></div>"
  156. document.body.insertAdjacentHTML("beforeEnd",str); 
  157. //显示隐藏窗口 
  158. function ShowHide(id,dis){ 
  159. var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis 
  160. document.getElementById("xMsg"+id).style.display = bdisplay; 
  161. document.getElementById("xMsg"+id+"bg").style.display = bdisplay; 
  162. //--> 
  163. </script> 
  164. <script language='JScript'
  165. <!-- 
  166. function initialize() 
  167. var a = new xWin("1",160,200,200,200,"窗口1","xWin Demo"); 
  168. var b = new xWin("2",240,200,100,100,"窗口2","Welcome");  
  169. var c = new xWin("3",200,160,250,50,"窗口3","Copyright"); 
  170. ShowHide("1","none");//隐藏窗口1 
  171. window.onload = initialize; 
  172. //--> 
  173. </script> 
  174. </head> 
  175. <base target="_blank"
  176. <body onselectstart='return false' oncontextmenu='return false' > 
  177. <a onclick="ShowHide('1',null);return false;" href="">Windows 1</a> 
  178. <a onclick="ShowHide('2',null);return false;" href="">Windows 2</a> 
  179. <a onclick="ShowHide('3',null);return false;" href="">Windows 3</a> 
  180. </body> 
  181. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选