網頁頁面蒙版實現


做手機端網頁的時候,設計師做了這樣一張圖:

 

這個頁面除了底層的布局,主要的工作是蒙版的實現,這種特效很常見到,淘寶改版的時候會彈出也是這種效果,引導剁手黨熟悉新布局和功能,以便讓他們更好的敗家。還有好多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端看會有點問題。

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM