Web页面中使用遮罩层,可防止重复操作,提示loading;也可以模拟弹出模态窗口。

实现思路:一个DIV作为遮罩层,一个DIV显示loading动态GIF图片。在下面的示例代码中,同时展示了如何在iframe子页面中调用显示和隐藏遮罩层。

示例代码:

index.html

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Commpatible" content="IE=edge">
  6. <title>HTML遮罩层</title>
  7. <link rel="stylesheet" href="css/index.css">
  8. </head>
  9. <body>
  10. <div class="header" id="header">
  11. <div class="title-outer">
  12. <span class="title">
  13. HTML遮罩层使用
  14. </span>
  15. </div>
  16. </div>
  17. <div class="body" id="body">
  18. <iframe id="iframeRight" name="iframeRight" width="100%" height="100%"
  19. scrolling="no" frameborder="0"
  20. style="border: 0px;margin: 0px; padding: 0px; width: 100%; height: 100%;overflow: hidden;"
  21. onload="rightIFrameLoad(this)" src="body.html"></iframe>
  22. </div>
  23. <!-- 遮罩层DIV -->
  24. <div id="overlay" class="overlay"></div>
  25. <!-- Loading提示 DIV -->
  26. <div id="loadingTip" class="loading-tip">
  27. <img src="images/loading.gif" />
  28. </div>
  29. <!-- 模拟模态窗口DIV -->
  30. <div class="modal" id="modalDiv"></div>
  31. <script type='text/javascript' src="js/jquery-1.10.2.js"></script>
  32. <script type="text/javascript" src="js/index.js"></script>
  33. </body>
  34. </html>

index.css

CSS Code复制内容到剪贴板
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. }
  5. html, body {
  6. width: 100%;
  7. height: 100%;
  8. font-size14px;
  9. }
  10. div.header {
  11. width: 100%;
  12. height100px;
  13. border-bottom1px dashed blue;
  14. }
  15. div.title-outer {
  16. positionrelative;
  17. top: 50%;
  18. height30px;
  19. }
  20. span.title {
  21. text-alignleft;
  22. positionrelative;
  23. left: 3%;
  24. top: -50%;
  25. font-size22px;
  26. }
  27. div.body {
  28. width: 100%;
  29. }
  30. .overlay {
  31. positionabsolute;
  32. top0px;
  33. left0px;
  34. z-index: 10001;
  35. display:none;
  36. filter:alpha(opacity=60);
  37. background-color#777;
  38. opacity: 0.5;
  39. -moz-opacity: 0.5;
  40. }
  41. .loading-tip {
  42. z-index: 10002;
  43. positionfixed;
  44. display:none;
  45. }
  46. .loading-tip img {
  47. width:100px;
  48. height:100px;
  49. }
  50. .modal {
  51. position:absolute;
  52. width600px;
  53. height360px;
  54. border1px solid rgba(0, 0, 0, 0.2);
  55. box-shadow: 0px 3px 9px rgba(0, 0, 0, 0.5);
  56. displaynone;
  57. z-index: 10003;
  58. border-radius: 6px;
  59. }

index.js

JavaScript Code复制内容到剪贴板
  1. function rightIFrameLoad(iframe) {
  2. var pHeight = getWindowInnerHeight() - $('#header').height() - 5;
  3. $('div.body').height(pHeight);
  4. console.log(pHeight);
  5. }
  6. // 浏览器兼容 取得浏览器可视区高度
  7. function getWindowInnerHeight() {
  8. var winHeight = window.innerHeight
  9. || (document.documentElement && document.documentElement.clientHeight)
  10. || (document.body && document.body.clientHeight);
  11. return winHeight;
  12. }
  13. // 浏览器兼容 取得浏览器可视区宽度
  14. function getWindowInnerWidth() {
  15. var winWidth = window.innerWidth
  16. || (document.documentElement && document.documentElement.clientWidth)
  17. || (document.body && document.body.clientWidth);
  18. return winWidth;
  19. }
  20. /**
  21. * 显示遮罩层
  22. */
  23. function showOverlay() {
  24. // 遮罩层宽高分别为页面内容的宽高
  25. $('.overlay').css({'height':$(document).height(),'width':$(document).width()});
  26. $('.overlay').show();
  27. }
  28. /**
  29. * 显示Loading提示
  30. */
  31. function showLoading() {
  32. // 先显示遮罩层
  33. showOverlay();
  34. // Loading提示窗口居中
  35. $("#loadingTip").css('top',
  36. (getWindowInnerHeight() - $("#loadingTip").height()) / 2 + 'px');
  37. $("#loadingTip").css('left',
  38. (getWindowInnerWidth() - $("#loadingTip").width()) / 2 + 'px');
  39. $("#loadingTip").show();
  40. $(document).scroll(function() {
  41. return false;
  42. });
  43. }
  44. /**
  45. * 隐藏Loading提示
  46. */
  47. function hideLoading() {
  48. $('.overlay').hide();
  49. $("#loadingTip").hide();
  50. $(document).scroll(function() {
  51. return true;
  52. });
  53. }
  54. /**
  55. * 模拟弹出模态窗口DIV
  56. * @param innerHtml 模态窗口HTML内容
  57. */
  58. function showModal(innerHtml) {
  59. // 取得显示模拟模态窗口用DIV
  60. var dialog = $('#modalDiv');
  61. // 设置内容
  62. dialog.html(innerHtml);
  63. // 模态窗口DIV窗口居中
  64. dialog.css({
  65. 'top' : (getWindowInnerHeight() - dialog.height()) / 2 + 'px',
  66. 'left' : (getWindowInnerWidth() - dialog.width()) / 2 + 'px'
  67. });
  68. // 窗口DIV圆角
  69. dialog.find('.modal-container').css('border-radius','6px');
  70. // 模态窗口关闭按钮事件
  71. dialog.find('.btn-close').click(function(){
  72. closeModal();
  73. });
  74. // 显示遮罩层
  75. showOverlay();
  76. // 显示遮罩层
  77. dialog.show();
  78. }
  79. /**
  80. * 模拟关闭模态窗口DIV
  81. */
  82. function closeModal() {
  83. $('.overlay').hide();
  84. $('#modalDiv').hide();
  85. $('#modalDiv').html('');
  86. }

body.html

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Commpatible" content="IE=edge">
  6. <title>body 页面</title>
  7. <style type="text/css">
  8. * {
  9. margin: 0;
  10. padding: 0;
  11. }
  12. html, body {
  13. width: 100%;
  14. height: 100%;
  15. }
  16. .outer {
  17. width: 200px;
  18. height: 120px;
  19. position: relative;
  20. top: 50%;
  21. left: 50%;
  22. }
  23. .inner {
  24. width: 200px;
  25. height: 120px;
  26. position: relative;
  27. top: -50%;
  28. left: -50%;
  29. }
  30. .button {
  31. width: 200px;
  32. height: 40px;
  33. position: relative;
  34. }
  35. .button#btnShowLoading {
  36. top: 0;
  37. }
  38. .button#btnShowModal {
  39. top: 30%;
  40. }
  41. </style>
  42. <script type="text/javascript">
  43. function showOverlay() {
  44. // 调用父窗口显示遮罩层和Loading提示
  45. window.top.window.showLoading();
  46. // 使用定时器模拟关闭Loading提示
  47. setTimeout(function() {
  48. window.top.window.hideLoading();
  49. }, 3000);
  50. }
  51. function showModal() {
  52. // 调用父窗口方法模拟弹出模态窗口
  53. window.top.showModal($('#modalContent').html());
  54. }
  55. </script>
  56. </head>
  57. <body>
  58. <div class='outer'>
  59. <div class='inner'>
  60. <button id='btnShowLoading' class='button' onclick='showOverlay();'>点击弹出遮罩层</button>
  61. <button id='btnShowModal' class='button' onclick='showModal();'>点击弹出模态窗口</button>
  62. </div>
  63. </div>
  64. <!-- 模态窗口内容DIV,将本页面DIV内容设置到父窗口DIV上并模态显示 -->
  65. <div id='modalContent' style='display: none;'>
  66. <div class='modal-container' style='width: 100%;height: 100%;background-color: white;'>
  67. <div style='width: 100%;height: 49px;position: relative;left: 50%;top: 50%;'>
  68. <span style='font-size: 36px; width: 100%; text-align:center; display: inline-block; position:inherit; left: -50%;top: -50%;'>模态窗口1</span>
  69. </div>
  70. <button class='btn-close' style='width: 100px; height: 30px; position: absolute; right: 30px; bottom: 20px;'>关闭</button>
  71. </div>
  72. </div>
  73. <script type='text/javascript' src="js/jquery-1.10.2.js"></script>
  74. </body>
  75. </html>

运行结果:

初始化

显示遮罩层和Loading提示

显示遮罩层和模拟弹出模态窗口

以上就是本文的全部内容,希望对大家的学习有所帮助。

HTML实现遮罩层的方法 HTML中如何使用遮罩层相关推荐

  1. 网页制作 HTML实现遮罩层的方法 HTML中如何使用遮罩层

    网页制作 HTML实现遮罩层的方法 HTML中如何使用遮罩层 Web页面中使用遮罩层,可防止重复操作,提示loading:也可以模拟弹出模态窗口. 实现思路:一个DIV作为遮罩层,一个DIV显示loa ...

  2. Cadence allegro中PASTMASK_TOP是什么?什么是钢网层?pcb打样中的钢网层是什么、有什么作用?

    在利用cadence Pad design绘制元件的焊盘时有PASTMASK_TOP.PASTMASK_BOTTOM这两个参数.这两个参数指的是pcb的钢网层,那么什么是钢网层呢? 图1 图2 图3 ...

  3. php 遮罩层,Jquery实现遮罩层的方法

    本文实例讲述了Jquery实现遮罩层的方法.分享给大家供大家参考.具体如下: 1.假设#main为页面body中的最外层Div标签 2.背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就 ...

  4. php点击弹遮罩层,小程序:防止点击遮罩层后遮罩层下面也反应的解决方法

    本篇文章给大家带来的内容是关于小程序:防止点击遮罩层后遮罩层下面也反应的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 最近在做自定义弹窗,不免会使用到遮罩层或者说蒙层. 但 ...

  5. ios 刷新遮罩遮罩_在Adobe XD中进行遮罩的3种方法

    ios 刷新遮罩遮罩 Are you new to Adobe XD? Or maybe you're just stuck on how to create a simple mask? Here ...

  6. web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开

    web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开 <style type="text/css"> * {margin: 0;padding: 0; }a {te ...

  7. 终端服务器安全层在协议流中检测到错误,并已取消客户端连接。客户端IP:x.x.x.解决方法

    终端服务器安全层在协议流中检测到错误,并已取消客户端连接.客户端IP:x.x.x.解决方法 事件类型: 错误 事件来源: TermDD 描述: RDP 的 "DATA ENCRYPTION& ...

  8. 各种现代方法和技术在储集层研究中的运用

    一.前言: 储集层地质学于60年代末在国外提出,70年代后期储集层沉积学引入油田开发领域.此后,尤其是80年代以来,与储集层有关的学科或理论(如现代沉积学.成岩作用等)的研究有了重要突破,地震及测井数 ...

  9. 查找树的指定层级_非递归层次遍历方法实现二叉树中指定节点的层次数查找

    数据结构教材中,提供了基于队列实现一个二叉树的非递归层次遍历算法.但对于一个任意二叉树,如果要查找其中任何一个节点所在的层次数,教科书中并没有给出基于层次遍历的非递归算法.鉴于层次遍历算法比较容易理解 ...

最新文章

  1. java开发培训中消息中间件的优势有哪些
  2. 【渝粤教育】电大中专电商运营实操 (8)作业 题库
  3. NOIP201202寻宝
  4. PHP 实现简单的 倒计时 时分秒
  5. java程序源代码如何保存到桌面_如何编写JAVA小白第一个程序
  6. CF #371 (Div. 2) C、map标记
  7. 关于Mytatis动态拼接in语句并且按照指定顺序排序的问题
  8. coursera 计算概论与程序设计基础(李戈)-第一题
  9. Linux JAVA JDK JRE 环境变量安装与配置
  10. JAVA 基础语法(五)——数组
  11. apple苹果IOS内购申请教程协议、税务和银行业务配置
  12. 2020 HDU Multi-University Training Contest 6(部分)
  13. FireFox浏览器渗透测试插件
  14. 小程序、容器、SCF、直播加速…最全面的云端架构技术揭秘
  15. 硬盘柱面损坏怎么办_硬盘有坏道怎么修复?使用DiskGenius修复硬盘逻辑坏道的方法...
  16. DZY Loves Sequences (dp)
  17. Makefile 书写
  18. 简单的VUE购物车应用
  19. 智课雅思短语---五、 in contrast / on the contrary
  20. 苹果Mac怎样让输入法实现自动切换?

热门文章

  1. 系统如何自动识别短信验证码
  2. 我谈阶梯博弈( Staircase Nim )
  3. Web Worker 简介
  4. Prim(各种功能)
  5. Fatal signal 11问题的解决方法
  6. 图像配准方面的算法总结
  7. @Validated使用
  8. PTX JIT compiler failed
  9. 大数据先导实践实验一
  10. 热门好用的企业网盘工具大盘点