zoukankan      html  css  js  c++  java
  • HTML实现遮罩层的方法 HTML中如何使用遮罩层

    这篇文章主要为大家详细介绍了HTML实现遮罩层的方法,Web页面中使用遮罩层,可防止重复操作,那么如何在HTML中使用遮罩层?感兴趣的小伙伴们可以参考一下。

    文章转自脚本之家,作者MySomeDay ,文章地址 http://www.jb51.net/web/444162.html

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

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

    示例代码:

    index.html

    复制代码
     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;  100%; height: 100%;overflow: hidden;"  
    21             onload="rightIFrameLoad(this)" src="body.html"></iframe>  
    22     </div>  
    23        
    24     <!-- 遮罩层DIV -->  
    25     <div id="overlay" class="overlay"></div>  
    26     <!-- Loading提示 DIV -->  
    27     <div id="loadingTip" class="loading-tip">  
    28         <img src="images/loading.gif" />  
    29     </div>  
    30        
    31     <!-- 模拟模态窗口DIV -->  
    32     <div class="modal" id="modalDiv"></div>  
    33        
    34     <script type='text/javascript' src="js/jquery-1.10.2.js"></script>  
    35     <script type="text/javascript" src="js/index.js"></script>  
    36 </body>  
    37 </html>  
    复制代码

    index.css

    复制代码
     1 * {   
     2     margin: 0;   
     3     padding: 0;   
     4 }   
     5   
     6 html, body {   
     7      100%;   
     8     height: 100%;   
     9     font-size: 14px;   
    10 }   
    11   
    12 div.header {   
    13      100%;   
    14     height: 100px;   
    15     border-bottom: 1px dashed blue;   
    16 }   
    17   
    18 div.title-outer {   
    19     position: relative;   
    20     top: 50%;   
    21     height: 30px;   
    22 }   
    23 span.title {   
    24     text-align: left;   
    25     position: relative;   
    26     left: 3%;   
    27     top: -50%;   
    28     font-size: 22px;   
    29 }   
    30   
    31 div.body {   
    32      100%;   
    33 }   
    34 .overlay {   
    35     position: absolute;   
    36     top: 0px;   
    37     left: 0px;   
    38     z-index: 10001;   
    39     display:none;   
    40     filter:alpha(opacity=60);   
    41      font-size: 12px !important; line-height: 1.5 !important;">#777;   
    42     opacity: 0.5;   
    43     -moz-opacity: 0.5;   
    44 }   
    45 .loading-tip {   
    46     z-index: 10002;   
    47     position: fixed;   
    48     display:none;   
    49 }   
    50 .loading-tip img {   
    51     100px;   
    52     height:100px;   
    53 }   
    54   
    55 .modal {   
    56     position:absolute;   
    57      600px;   
    58     height: 360px;   
    59     border: 1px solid rgba(0, 0, 0, 0.2);   
    60     box-shadow: 0px 3px 9px rgba(0, 0, 0, 0.5);   
    61     display: none;   
    62     z-index: 10003;   
    63     border-radius: 6px;   
    64 }   
    65   
    复制代码

    index.js

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

    body.html

    复制代码
     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   
    13 html, body {   
    14      100%;   
    15     height: 100%;   
    16 }   
    17   
    18 .outer {   
    19      200px;   
    20     height: 120px;   
    21     position: relative;   
    22     top: 50%;   
    23     left: 50%;   
    24 }   
    25   
    26 .inner {   
    27      200px;   
    28     height: 120px;   
    29     position: relative;   
    30     top: -50%;   
    31     left: -50%;   
    32 }   
    33   
    34 .button {   
    35      200px;   
    36     height: 40px;   
    37     position: relative;   
    38 }   
    39     
    40 .button#btnShowLoading {   
    41     top: 0;   
    42 }   
    43   
    44 .button#btnShowModal {   
    45     top: 30%;   
    46 }   
    47   
    48 </style>  
    49 <script type="text/javascript">  
    50        
    51     function showOverlay() {   
    52         // 调用父窗口显示遮罩层和Loading提示   
    53         window.top.window.showLoading();   
    54   
    55         // 使用定时器模拟关闭Loading提示   
    56         setTimeout(function() {   
    57             window.top.window.hideLoading();   
    58         }, 3000);   
    59   
    60     }   
    61   
    62     function showModal() {   
    63         // 调用父窗口方法模拟弹出模态窗口   
    64         window.top.showModal($('#modalContent').html());   
    65     }   
    66        
    67 </script>  
    68 </head>  
    69 <body>  
    70     <div class='outer'>  
    71         <div class='inner'>  
    72             <button id='btnShowLoading' class='button' onclick='showOverlay();'>点击弹出遮罩层</button>  
    73             <button id='btnShowModal' class='button' onclick='showModal();'>点击弹出模态窗口</button>  
    74         </div>  
    75     </div>  
    76        
    77     <!-- 模态窗口内容DIV,将本页面DIV内容设置到父窗口DIV上并模态显示 -->  
    78     <div id='modalContent' style='display: none;'>  
    79         <div class='modal-container' style=' 100%;height: 100%;background-color: white;'>  
    80             <div style=' 100%;height: 49px;position: relative;left: 50%;top: 50%;'>  
    81                 <span style='font-size: 36px;  100%; text-align:center; display: inline-block; position:inherit; left: -50%;top: -50%;'>模态窗口1</span>  
    82             </div>  
    83             <button class='btn-close' style=' 100px; height: 30px; position: absolute; right: 30px; bottom: 20px;'>关闭</button>  
    84         </div>  
    85     </div>  
    86     <script type='text/javascript' src="js/jquery-1.10.2.js"></script>  
    87 </body>  
    88 </html>  
    89   
    复制代码

    运行结果:

    初始化

    显示遮罩层和Loading提示

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

  • 相关阅读:
    Class 、NSObject、id
    xcode8.2 打包问题
    JS WEB 交互问题
    C语言 关于内存动态分配问题
    Objective-C( Category 分类,非正式协议,分类延展)
    NSComparisonResul、NSNotFound、NSEnumerationOptions......的用处
    Objective-C( Foundation框架 一 常见的结构体)
    Objective-C( Foundation框架 一 数组(NSMutableArray))
    Objective-C( Foundation框架 一 数组(NSArray))
    Objective-C( Foundation框架 一 字符串)
  • 原文地址:https://www.cnblogs.com/wells33373/p/6295578.html
Copyright © 2011-2022 走看看