首页 > 语言 > JavaScript > 正文

Jquery实现遮罩层的方法

2024-05-06 16:21:47
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了Jquery实现遮罩层的方法,详细的分析了jQuery实现遮罩层的步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了Jquery实现遮罩层的方法。分享给大家供大家参考。具体如下:

1、假设#main为页面body中的最外层Div标签

2、背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了):

 

 
  1. <!-- Status Bar Start --> 
  2. <div id="warning-dialog" class="status warning center-top no-display"> 
  3. <p class="closestatus"><a href="javascript:$().hideWarningDialog()" title="Close">x</a></p> 
  4. <div class="clear"></div> 
  5. <p><img src="images/icon_warning.png" alt="Warning" /><span id="warning-dialog-detail">Attention!</span></p> 
  6. <div class="closes"> 
  7. <input type="hidden" id="refresh-after-warning" value="false" /> 
  8. <input name="" type="image" src="images/niu_qd.jpg" align="absmiddle" class="button_jl" onclick="javascript:$().hideWarningDialog()" /> 
  9. </div> 
  10. </div> 
  11. <!-- Status Bar End --> 

3、在script.js中定义遮罩函数以及弹出窗操作函数,当然script.js,jquery.js需要包含在html页面中:

 

 
  1. var warning_dialog = $('#warning-dialog'),  
  2. warning_dialog_detail = $('#warning-dialog-detail'),  
  3. refresh_after_warning = $('#refresh-after-warning'); 
  4. // 显示遮罩层 
  5. $.fn.showWarningDialog = function(detail, refresh) { 
  6. if ($isIE6) { 
  7. $(".menu_select").hide(); 
  8. } 
  9. $.fn.mask(); 
  10. warning_dialog_detail.html(detail); 
  11. refresh_after_warning.val(refresh); 
  12. warning_dialog.css({ 
  13. "position" : "absolute", 
  14. "left" : "50%", 
  15. "top" : "50%", 
  16. "margin-left" : "-250px", 
  17. "margin-top" : "-100px", 
  18. "border" : "solid 3px #ccc", 
  19. "z-index" : 6000 
  20. }); 
  21. warning_dialog.show(); 
  22. } 
  23. // 去除遮罩层 
  24. $.fn.hideWarningDialog = function() { 
  25. if ($isIE6) { 
  26. $(".menu_select").show(); 
  27. } 
  28. $.fn.unmask(); 
  29. if (refresh_after_warning.val() == "true") { 
  30. $('#main').showLoading(); 
  31. location.reload(true); 
  32. } else 
  33. warning_dialog.hide(); 
  34. } 
  35. // 显示遮罩效果 
  36. $.fn.mask = function() { 
  37. this.unmask(); 
  38. // 参数 
  39. var op = { 
  40. bgcolor : '#ccc', 
  41. z : 5100, 
  42. opacity : 0.3 
  43. }; 
  44. var position = { 
  45. top : 0, 
  46. left : 0 
  47. }; 
  48. var original = $("#main"); 
  49. // 创建一个 Mask 层,追加到对象中 
  50. var maskDiv = $('<div class="maskdivgen"></div>'); 
  51. maskDiv.appendTo(original); 
  52. var maskWidth = original.width(); 
  53. var maskHeight = original.height(); 
  54. maskDiv.css({ 
  55. position : 'absolute', 
  56. top : position.top, 
  57. left : position.left, 
  58. 'z-index' : op.z, 
  59. width : maskWidth, 
  60. height : maskHeight, 
  61. 'background-color' : op.bgcolor, 
  62. opacity : 0 
  63. }); 
  64. maskDiv.fadeIn('fast', function() { 
  65. // 淡入淡出效果 
  66. $(this).fadeTo('fast', op.opacity); 
  67. }); 
  68. return maskDiv; 
  69. } 
  70. // 去除遮罩效果 
  71. $.fn.unmask = function() { 
  72. var original = $("#main"); 
  73. if (this[0] && this[0] !== window.document) { 
  74. original = $(this[0]); 
  75. } 
  76. original.find("> div.maskdivgen").fadeOut('fast', 0, function() { 
  77. $(this).remove(); 
  78. }); 
  79. } 

本例中使用main标签获得高度,宽度,如果不想通过标签获得页面高度和宽度,可通过如下方式获得

 

 
  1. /* 当前页面高度 */ 
  2. function pageHeight() { 
  3. return document.body.scrollHeight; 
  4. } 
  5. /* 当前页面宽度 */ 
  6. function pageWidth() { 
  7. return document.body.scrollWidth; 
  8. } 

4、调用遮罩层:

 

 
  1. <script type="text/javascript"> 
  2. function init() { 
  3. <?php 
  4. if ($msg != "用户名输入错误") { 
  5. ?> 
  6. $.fn.showWarningDialog("<?php echo $msg; ?>", "false"); 
  7. <?php 
  8. } 
  9. ?>  
  10. } 
  11. window.onload = function(){ 
  12. init(); 
  13. }; 
  14. </script> 

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

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

图片精选