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

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

 

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

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. window.onload = function(){ 
  10. init(); 
  11. }; 
  12. </script> 

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

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

图片精选