首页 > 语言 > JavaScript > 正文

纯js实现仿QQ邮箱弹出确认框

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

仿QQ邮箱的弹出层,弹出确认框,主要是用火狐的firebug把html和css扣了下来,没有做封装,就定义了一个拖动事件. 大家可以封装自己的弹出窗,嘿嘿!

代码非常简单,这里就不多废话了。

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <HTML> 
  3. <HEAD> 
  4. <TITLE>QQ邮箱的弹出层</TITLE> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <style> 
  7. body { 
  8. background: none repeat scroll 0 0 #FFFFFF; 
  9. font-family: "lucida Grande",Verdana; 
  10. font-size: 12px; 
  11. select, body, textarea { 
  12. font-size: 12px; 
  13. .tipbg { 
  14. margin: 0; 
  15. padding: 0; 
  16. background-color: transparent; 
  17. .qmpanel_shadow { 
  18. border-radius: 3px 3px 3px 3px; 
  19. box-shadow: 0 2px 7px rgba(0, 0, 0, 0.35); 
  20. .bd_upload { 
  21. border: 1px solid #628D0B; 
  22. .bd_upload { 
  23. border: 1px solid #628D0B; 
  24. .fdbody { 
  25. border-left: 8px solid #FFFFFF; 
  26. border-right: 1px solid #87A34D; 
  27. .fdbody, .tipstitle { 
  28. background: none repeat scroll 0 0 #9BBB59; 
  29. .editor_dialog_title { 
  30. color: white; 
  31. font: bold 12px "lucida Grande",Verdana; 
  32. padding: 9px 0 7px 10px; 
  33. text-align: left; 
  34. .editor_dialog_content { 
  35. background: none repeat scroll 0 0 #FFFFFF; 
  36. filter: none; 
  37. margin: 0; 
  38. padding: 0; 
  39. text-align: center; 
  40. .mailinfo { 
  41. border-bottom: 2px solid #FFFFFF; 
  42. .mailinfo { 
  43. background: none repeat scroll 0 0 #FFFFFF; 
  44. .cnfx_content { 
  45. padding: 10px 0 5px 10px; 
  46. text-align: left; 
  47. .cnfx_status { 
  48. float: left; 
  49. padding: 0 0 0 10px; 
  50. .cnfx_btn { 
  51. padding: 0 10px 10px 0; 
  52. text-align: right; 
  53. .b_size { 
  54. font-size: 14px; 
  55. .editor_close { 
  56. background: none repeat scroll 0 0 #DC4835; 
  57. /** when mouseover,add editor_close_mover*/ 
  58. .editor_close, .editor_close_mover { 
  59. border: 1px solid #A7190F; 
  60. cursor: pointer; 
  61. float: right; 
  62. margin: 7px 7px 0 0; 
  63. .editor_close img, .editor_close_mover img, .editor_min img, .editor_min_mover img { 
  64. display: block; 
  65. img { 
  66. border: medium none; 
  67. .wd2 { 
  68. margin: 1px 1px 0 0; 
  69. width: 64px; 
  70. .btn, button, .qm_btn { 
  71. padding-left: 0; 
  72. padding-right: 0; 
  73. input, textarea, a { 
  74. outline: medium none; 
  75. .editor_mask { 
  76. background: none repeat scroll 0 0 #FFFFFF; 
  77. height: 100%; 
  78. left: 0; 
  79. opacity: 0.5; 
  80. position: absolute; 
  81. top: 0; 
  82. width: 100%; 
  83. </style> 
  84. <script> 
  85. ///////// 拖拽工具类 //////// 
  86. var DragUtil = (function(){ 
  87. var doc = document
  88.  
  89. var moveX = 0
  90. var moveY = 0
  91. var moveTop = 0
  92. var moveLeft = 0
  93. var moveable = false
  94. return { 
  95. /** 
  96. * 注册拖拽 
  97. * 需要传入整个窗体id和标题部分的id 
  98. */ 
  99. regist:function(winId,titleId) { 
  100. // 页面头部要加上: 
  101. // <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  102. // 不然会有问题的 
  103. var width = doc.documentElement.clientWidth;  
  104. var height = doc.documentElement.clientHeight;  
  105. var title = doc.getElementById(titleId); 
  106. var win = doc.getElementById(winId); 
  107. title.onmousedown = function() { 
  108. var evt = DragUtil._getEvent(); 
  109.  
  110. moveable = true;  
  111. moveX = evt.clientX; 
  112. moveY = evt.clientY; 
  113.  
  114. moveTop = parseInt(win.style.top); 
  115. moveLeft = parseInt(win.style.left); 
  116.  
  117. doc.onmousemove = function() { 
  118. if (moveable) { 
  119. var evt = DragUtil._getEvent(); 
  120. var x = moveLeft + evt.clientX - moveX; 
  121.  
  122. var y = moveTop + evt.clientY - moveY; 
  123. var w = parseInt(win.style.width); 
  124. var h = parseInt(win.style.height); 
  125.  
  126.  
  127. if ( x > 0 &&( x + w < width) && y > 0 && (y + h < height) ) { 
  128. win.style.left = x + "px"; 
  129. win.style.top = y + "px"; 
  130. }  
  131. }; 
  132. doc.onmouseup = function () {  
  133. if (moveable) {  
  134. //doc.onmousemove = docMouseMoveEvent
  135. //doc.onmouseup = docMouseUpEvent
  136. moveable = false;  
  137. moveX = 0
  138. moveY = 0
  139. moveTop = 0
  140. moveLeft = 0
  141. }  
  142. }; 
  143. /** 
  144. * 获取事件 
  145. */ 
  146. ,_getEvent:function(){ 
  147. return window.event || arguments.callee.caller.arguments[0]; 
  148. })() 
  149. /////////////////////// 
  150. function init(){ 
  151. DragUtil.regist("WindowId","titleId") 
  152. DragUtil.regist("WindowId2","titleId2") 
  153. }  
  154. </script> 
  155. </HEAD> 
  156. <BODY onload="init()"> 
  157. <span id="qmdialog_container"><div 
  158. style="z-index: 1120; position: absolute; width: 447px; height: 163px; opacity: 1; left: 514px; top: 124px; margin-top: 0pt;" 
  159. class="" id="WindowId" qmanimation_play="|undefined"> 
  160. <div class="tipbg"> 
  161. <div style="background: #DDD;" class="opashowOuter qmpanel_shadow" 
  162. id="QMconfirm___opashow_"> 
  163. <table cellspacing="0" cellpadding="0" 
  164. style="width: 447px; height: 163px;background: white;" 
  165. class="bd_upload"> 
  166. <tbody> 
  167. <tr> 
  168. <td 
  169. style="height: 28px; border: none; background-image: none; cursor: move; overflow: hidden;" 
  170. class="editor_dialog_titlebar fdbody" 
  171. id="QMconfirm___title_td_"><div 
  172. id="QMconfirm___title_div_" 
  173. style="cursor: default; float: right; width: 40px; border: none; background-image: none;" 
  174. class="fdbody"> 
  175. <div onmouseout="this.className='editor_close';" 
  176. onmouseover="this.className='editor_close_mover';" 
  177. class="editor_close" id="QMconfirm___closebtn2_"> 
  178. <img height="12" width="12" ondragstart="return false;" src="http://www.vevb.com/jscss/demoimg/201109/ico_closetip.gif"> 
  179. </div> 
  180. </div> 
  181. <div id="titleId" class="editor_dialog_title">删除确认</div> 
  182. </td> 
  183. </tr> 
  184. <tr> 
  185. <td valign="top" 
  186. style="height: 131px; border: medium none; visibility: visible;" 
  187. class="editor_dialog_content " id="QMconfirm___content_"><div 
  188. class="mailinfo" 
  189. style="border: none; height: 100%; display: inline;"> 
  190. <div class=""> 
  191. <div class="cnfx_content"> 
  192. <img align="absmiddle" 
  193. style="float: left; margin: 5px 10px 0; display: block;" 
  194. src="http://www.vevb.com/jscss/demoimg/201109/ico_question.gif"> 
  195. <table style="width: 350px; height: 80px;"> 
  196. <tbody> 
  197. <tr> 
  198. <td style="vertical-align: top;"><div class="b_size" 
  199. style="padding-top: 10px; word-break: break-all; line-height: 150%;"> 
  200. <div>彻底删除后邮件将无法恢复,您确定要删除吗?</div> 
  201. </div></td></tr></tbody> 
  202. </table> 
  203. </div> 
  204. <div style="display: none;" class="cnfx_status"> 
  205. <input type="checkbox" id="QMconfirm__recordstatus"><label for="QMconfirm__recordstatus"></label> 
  206. </div> 
  207. <div class="cnfx_btn"> 
  208. <input type="button" value="确定" id="QMconfirm__confirm" class="wd2 btn"><input type="button" value="取消" style="display: ;" id="QMconfirm__cancel" class="wd2 btn"><input type="button" value="" style="display: none;" id="QMconfirm__never" class="wd2 btn"> 
  209. </div> 
  210. </div> 
  211. </div> 
  212. </td> 
  213. </tr> 
  214. </tbody> 
  215. </table> 
  216. </div> 
  217. </div> 
  218. </div> 
  219. </span> 
  220. <span id="qmdialog_container"><div 
  221. style="z-index: 1120; position: absolute; width: 447px; height: 163px; opacity: 1; left: 514px; top: 324px; margin-top: 0pt;" 
  222. class="" id="WindowId2" qmanimation_play="|undefined"> 
  223. <div class="tipbg"> 
  224. <div style="background: #DDD;" class="opashowOuter qmpanel_shadow" id="QMconfirm___opashow_"> 
  225. <table cellspacing="0" cellpadding="0" style="width: 447px; height: 163px;background: white;" class="bd_upload"> 
  226. <tbody> 
  227. <tr> 
  228. <td style="height: 28px; border: none; background-image: none; cursor: move; overflow: hidden;" class="editor_dialog_titlebar fdbody" id="QMconfirm___title_td_"><div id="QMconfirm___title_div_" style="cursor: default; float: right; width: 40px; border: none; background-image:none;" class="fdbody"> 
  229. <div onmouseout="this.className='editor_close';" onmouseover="this.className='editor_close_mover';" class="editor_close" id="QMconfirm___closebtn2_"> 
  230. <img height="12" width="12" ondragstart="return false;" src="http://www.vevb.com/jscss/demoimg/201109/ico_closetip.gif"> 
  231. </div> 
  232. </div> 
  233. <div id="titleId2" class="editor_dialog_title">删除确认</div> 
  234. </td> 
  235. </tr> 
  236. <tr> 
  237. <td valign="top" style="height: 131px; border: medium none; visibility: visible;" class="editor_dialog_content " id="QMconfirm___content_"><div class="mailinfo" style="border: none; height: 100%; display: inline;"> 
  238. <div class=""> 
  239. <div class="cnfx_content"> 
  240. <img align="absmiddle" 
  241. style="float: left; margin: 5px 10px 0; display:none;" src="http://www.vevb.com/jscss/demoimg/201109/ico_question.gif"> 
  242. <table style="width: 350px; height: 80px;"> 
  243. <tbody> 
  244. <tr> 
  245. <td style="vertical-align: top;"><div class="b_size" style="padding-top: 10px; word-break: break-all; line-height: 150%;"> 
  246. <div>彻底删除 
  247.  
  248.  
  249. 后邮件将无法恢复,您确定要删除吗?</div> 
  250. </div> 
  251. </td> 
  252. </tr> 
  253. </tbody> 
  254. </table> 
  255. </div> 
  256. <div style="display: none;" class="cnfx_status"> 
  257. <input type="checkbox" id="QMconfirm__recordstatus"><label for="QMconfirm__recordstatus"></label> 
  258. </div> 
  259. <div class="cnfx_btn"> 
  260. <input type="button" value="确定" id="QMconfirm__confirm" class="wd2 btn"><input type="button" value="取消" style="display: ;" id="QMconfirm__cancel" class="wd2btn"><input 
  261. type="button" value="" style="display: none;" 
  262. id="QMconfirm__never" class="wd2 btn"> 
  263. </div> 
  264. </div> 
  265. </div> 
  266. </td> 
  267. </tr> 
  268. </tbody> 
  269. </table> 
  270. </div> 
  271. </div> 
  272. </div> 
  273. </span>  
  274. </BODY> 
  275. </HTML> 



以上所述就是本文的全部内容了,希望大家能够喜欢。

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

图片精选