HTML5/CSS3實現添加鎖屏效果


 鎖屏效果,也就是將屏幕置於模態,不允許用戶觸發任何動作,只能解除鎖定后才能繼續使用,jQueryUI的dialog有模態對話框,這一點不難做到。那么,首先需要在頁面中添加一個div層,用於做模態的層: 
Html代碼   收藏代碼
  1. <div id="overlay">  

    其對應的CSS比較簡單,主要設置一下z-index屬性,值設置的很大即可,就能達到覆蓋其余元素的效果,加上opacity淡化一下背景: 
Css代碼   收藏代碼
  1. #overlay{  
  2.     height:100%;  
  3.     min-width:1280px;  
  4.     width:100%;  
  5.     position:absolute;  
  6.     left:0px;  
  7.     top:0px;  
  8.       
  9.     opacity:0.7;  
  10.         z-index:100;  
  11. }  

    這樣就有了一個覆蓋頁面之上的層,顯示效果為: 
 
    下面是添加解除鎖定的部分,我們模仿iphone解鎖效果,那么需要添加一下: 
Html代碼   收藏代碼
  1. <div id="slide">  
  2.     <span id="slider"></span>  
  3.     <span id="text">滑動解除鎖定</span>  
  4. </div>  

    一個圓角矩形框,左側是按鈕圖片,給出一個提示信息,難度不大: 
Css代碼   收藏代碼
  1. #slide{  
  2.     position:absolute;  
  3.     top:75%;  
  4.     width:52%;  
  5.     left:24%;  
  6.     height:86px;  
  7.     border-radius:18px;  
  8.     border:1px solid #2F368F;  
  9.     border-bottom:1px groovy #2F368F;  
  10.     z-index:101;  
  11.     background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #2F368F),color-stop(1, #77D1F6));   
  12.     opacity:0.9;  
  13. }  

    這里設置的z-index要比模態層大,這樣我們才能操控到,沒什么多說的。 
Css代碼   收藏代碼
  1. #slider{  
  2.     float:left;  
  3.     position:relative;  
  4.     cursor:pointer;  
  5.     height:44px;  
  6.     background: url(../images/arrow.png) no-repeat;  
  7.     border-radius:16px;  
  8.     margin:-5px;  
  9.     text-align:center;  
  10.     width: 146px;  
  11.     height: 98px;  
  12. }  

    滑塊中使用了圖片,這樣效果更好點,矩形框的寬度和滑塊圖片設置一致,margin等可以自行繼續微調。下面是關鍵的text區域部分,這里使用的效果目前僅webkit內核支持,那么就是說FF暫時不支持該效果。 
Css代碼   收藏代碼
  1. #text{  
  2.     height:50px;  
  3.     width:70%;  
  4.     float:left;  
  5.     padding-top:14px;  
  6.     font-family:"微軟雅黑";  
  7.     font-size:44px;  
  8.     font-weight:100;  
  9.     text-align:center;  
  10.     vertical-align: middle;  
  11.     background: -webkit-gradient(linear,left top,right top,color-stop(0, #4d4d4d),color-stop(0.4, #4d4d4d),color-stop(0.5, white),color-stop(0.6, #4d4d4d),color-stop(1, #4d4d4d));   
  12.     -webkit-background-clip: text;  
  13.     -webkit-text-fill-color: transparent;  
  14.     -webkit-animation: slidetounlock 5s infinite;  
  15.     -webkit-text-size-adjust: none;  
  16. }  

    加上下面的動畫: 
Css代碼   收藏代碼
  1. @-webkit-keyframes slidetounlock {  
  2.     0% {background-position: -200px 0;}  
  3.     100%{background-position: 200px 0;}  
  4. }  

    我們模仿出的最后效果為: 
 
    圖中文字部分動態高亮部門就是其它內核暫時不支持的部分了,這樣我們的效果就完成了,此時都是靜態的,什么操作也做不了,我們使用jqueryUI的draggable來添加動態效果: 
Js代碼   收藏代碼
  1. $(function() {  
  2.     var slideWidth=$("#slide").width();  
  3.     $("#slider").draggable({  
  4.         axis: 'x',  
  5.         containment: 'parent',  
  6.         drag: function(event, ui) {  
  7.             if (ui.position.left > slideWidth*0.7) {  
  8.                 $("#slide").fadeOut();  
  9.                 $("#overlay").fadeOut();  
  10.             } else {  
  11.                 // do nothing  
  12.             }  
  13.         },  
  14.         stop: function(event, ui) {  
  15.             if (ui.position.left < slideWidth*0.7) {  
  16.                 $(this).animate({left: 0});  
  17.             }  
  18.         }  
  19.     });       
  20. });  

    我們動態獲取設置的slide寬度,然后應用draggable方法,設置橫向拖動,並在拖動距離達到矩形長度的70%時,模態層和滑塊消失,還原到頁面中。那么我們就完成了給頁面添加鎖屏的效果了。 
    最后附上源碼,希望對使用者有用。


免責聲明!

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



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