网页页面蒙版实现

做手机端网页的时候,设计师做了这样一张图:

 

这个页面除了底层的布局,主要的工作是蒙版的实现,这种特效很常见到,淘宝改版的时候会弹出也是这种效果,引导剁手党熟悉新布局和功能,以便让他们更好的败家。还有好多app也有这种效果,多是领取每日任务之类的页面。

用处这么广泛,就想着实现下。分析:不考虑js效果的话,其实就是几层页面的关系。最底下是一层正常的网页,中间是一层灰色的蒙版,好了,蒙版上面是一层网页。层次大概这样。

想清楚了就开始做,主要利用css的position:absolute分层。先写底下的一层,做个最简单的点击弹出蒙版:

<section onclick="showMasking()" style="display:block; cursor:pointer"> 
    弹出蒙板 
</section> 

开始写蒙版层:

 <div id="masking-bg"> 
 </div> 

  

蒙版层上面的:

    <div id="masking-layer">
        <div class="close"onclick="closeMasking()">
               <img  src="assets/images/common/X.png"/>
        </div>
        <div class="masking-banner">
            <img class="img-bg" src="assets/images/common/winning.png"/>
            <img class="img" src="assets/images/common/iphoneImg.png"/>
            <div style="font-size:10px;"><span>(第1愿 )Apple iPhone6S Plus 64 颜色随机 唯一的不同,就是处处不同 </span></div>
        </div>
        <div class="skip"> 
            <div class="index-sure font-13"> 
            确定
            </div> 
        </div>
        
     </div>

css:

<style type="text/css">
#masking-bg{background-color:#CCC; width: 100%; height: 100%; left: 0; top: 0; z-index: 1; position: absolute; filter: alpha(opacity=80); opacity: 0.6;display: none;}
#masking-layer{display: none;height:500px;width:100%;position:absolute;top:0;}
#masking-layer div{position: absolute;z-index: 1000;}
.close{left:80%;top:15%;z-index:1001 !important;}
.close img{width:30px;}
.masking-banner{top:10%;text-align:center;width:100%;}
.masking-banner .img-bg{width:100%;}
.masking-banner .img {position:absolute;z-index:1001;left:40%;top:35%;width:25%;}
.masking-banner div{position:absolute;z-index:1001;left:25%;top:70%;width:50%;}
.skip{left:38%; top:80%; color:#fff; text-align:center;width:100%;} 
.index-sure{background-color:#ce1c40;color:#FFF;padding:10px 20px;text-align: center;border-radius:5px;display:block;width:25%;}
</style> 

全部代码:

<html> 
<head> 
<meta charset="utf-8"/> 
<meta id="viewport" name="viewport" content="initial-scale=1.0,user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" href="assets/css/style1.css?v=1.0">
<style type="text/css">
#masking-bg{background-color:#CCC; width: 100%; height: 100%; left: 0; top: 0; z-index: 1; position: absolute; filter: alpha(opacity=80); opacity: 0.6;display: none;}
#masking-layer{display: none;height:500px;width:100%;position:absolute;top:0;}
#masking-layer div{position: absolute;z-index: 1000;}
.close{left:80%;top:15%;z-index:1001 !important;}
.close img{width:30px;}
.masking-banner{top:10%;text-align:center;width:100%;}
.masking-banner .img-bg{width:100%;}
.masking-banner .img {position:absolute;z-index:1001;left:40%;top:35%;width:25%;}
.masking-banner div{position:absolute;z-index:1001;left:25%;top:70%;width:50%;}
.skip{left:38%; top:80%; color:#fff; text-align:center;width:100%;} 
.index-sure{background-color:#ce1c40;color:#FFF;padding:10px 20px;text-align: center;border-radius:5px;display:block;width:25%;}
</style> 
</head> 
<body> 
    <section onclick="showMasking()" style="display:block; cursor:pointer"> 
    弹出蒙板 
    </section>
    
    <div id="masking-bg"> 
    </div> 
    <div id="masking-layer">
        <div class="close"onclick="closeMasking()">
               <img  src="assets/images/common/X.png"/>
        </div>
        <div class="masking-banner">
            <img class="img-bg" src="assets/images/common/winning.png"/>
            <img class="img" src="assets/images/common/iphoneImg.png"/>
            <div style="font-size:10px;"><span>(第1愿 )Apple iPhone6S Plus 64 颜色随机 唯一的不同,就是处处不同 </span></div>
        </div>
        <div class="skip"> 
            <div class="index-sure font-13"> 
            确定
            </div> 
        </div>
        
     </div>
<script src="assets/js/jquery.min.js"></script>
<script>
    $('#masking-layer').height($(window).height());
    function showMasking(){
        $('#masking-bg').css('display','block');
        $('#masking-layer').css('display','block');
    }
    function closeMasking(){
        $('#masking-bg').css('display','none');
        $('#masking-layer').css('display','none');
    }
</script>
</body> 
</html> 

注意:上述代码中的图片自己替换。$('#masking-layer').height($(window).height());的作用是考虑底层的页面有滑动条条。因为设备的长宽比完全不一样,在PC端看会有点问题。

效果图:

原文地址:https://www.cnblogs.com/xiaochongchong/p/5364422.html