zoukankan      html  css  js  c++  java
  • web页面锁屏初级尝试

      因为工作需要,所以在网上找了一些素材来弄这个功能。在我找到的素材中,大多都是不完善的。虽然我的也不是很完善,但是怎么说呢。要求不是很高的话。可以直接拿来用的【需要引用jQuery】。废话不多说直接上代码

    这部分是js代码

      1 <script>
      2         (function(){
      3     // 获取对象
      4     var $ = function (id){
      5         return document.getElementById(id);
      6     };
      7     // 遍历
      8     var each = function(a, b) {
      9         for (var i = 0, len = a.length; i < len; i++) b(a[i], i);
     10     };
     11     // 事件绑定
     12     var bind = function (obj, type, fn) {
     13         if (obj.attachEvent) {
     14             obj['e' + type + fn] = fn;
     15             obj[type + fn] = function(){obj['e' + type + fn](window.event);}
     16             obj.attachEvent('on' + type, obj[type + fn]);
     17         } else {
     18             obj.addEventListener(type, fn, false);
     19         };
     20     };
     21     
     22     // 移除事件
     23     var unbind = function (obj, type, fn) {
     24         if (obj.detachEvent) {
     25             try {
     26                 obj.detachEvent('on' + type, obj[type + fn]);
     27                 obj[type + fn] = null;
     28             } catch(_) {};
     29         } else {
     30             obj.removeEventListener(type, fn, false);
     31         };
     32     };
     33     
     34     // 阻止浏览器默认行为
     35     var stopDefault = function(e){
     36         e.preventDefault ? e.preventDefault() : e.returnValue = false;
     37     };
     38     // 获取页面滚动条位置
     39     var getPage = function(){
     40         var dd = document.documentElement,
     41         db = document.body;
     42         return {
     43             left: Math.max(dd.scrollLeft, db.scrollLeft),
     44             top: Math.max(dd.scrollTop, db.scrollTop)
     45         };
     46     };
     47     
     48     // 锁屏
     49     var lock = {
     50         show: function(){
     51             $('pageOverlay').style.visibility = 'visible';
     52             var p = getPage(),
     53             left = p.left,
     54             top = p.top;
     55             
     56             // 页面鼠标操作限制
     57             this.mouse = function(evt){
     58                 var e = evt || window.event;
     59                 stopDefault(e);
     60                 scroll(left, top);
     61             };
     62             each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) {
     63                 bind(document, o, lock.mouse);
     64             });
     65             // 屏蔽特定按键: F5, Ctrl + R, Ctrl + A, Tab, Up, Down
     66             this.key = function(evt){
     67                 var e = evt || window.event,
     68                 key = e.keyCode;
     69                 if((key == 116) || (e.ctrlKey && key == 82) || (e.ctrlKey && key == 65) || (key == 9) || (key == 38) || (key == 40)) {
     70                     try{
     71                         e.keyCode = 0;
     72                     }catch(_){};
     73                     stopDefault(e);
     74                 };
     75             };
     76             bind(document, 'keydown', lock.key);
     77         },
     78         close: function(){
     79             $('pageOverlay').style.visibility = 'hidden';
     80             each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) {
     81                 unbind(document, o, lock.mouse);
     82             });
     83             unbind(document, 'keydown', lock.key);
     84         }
     85     };
     86     bind(window, 'load', function(){
     87         $('btn_lock').onclick = function(){
     88             if($('pageOverlay').style.visibility=="visible"){
     89                 lock.close();
     90             }
     91             else{
     92                 lock.show();
     93             }
     94         };
     95     });
     96 })();
     97 $(document).ready(function(e){
     98     /*点击删除 清空输入框的内容*/
     99     $('#btn_lock').click(function(){
    100         var target = document.getElementById("text");
    101         $('#btn_lock').attr("disabled",true);
    102         var zhi = target.value;
    103         
    104         sessionStorage.setItem("d",zhi)
    105 
    106     })
    107 
    108     $('#btn_lock').on("click",function(){
    109         $('#text').val('');
    110     });
    111 });    
    112 
    113 function loadStorage(){
    114 
    115     var target = document.getElementById("shuchu");
    116     var str=document.getElementById("text");
    117     start=str.value;
    118 
    119     var  b = sessionStorage.getItem("d")
    120     if(start==""){
    121         target.innerHTML="密码不能为空!";
    122     }else{
    123         if(b==start){
    124          target.innerHTML= "恭喜你,获得了爱神的青睐!"; 
    125          window.close();
    126      }
    127      else{
    128         target.innerHTML="很抱歉,你被爱神残忍抛弃!";
    129     }
    130  }
    131 }
    132 
    133 </script>

    下面这部分是html的代码

    <div class="flex-con">
            <div>
    
                <div>
                   <p id="shuchu"></p>
                   <input type="password" id="text" placeholder="请输入锁屏密码" />
               </div>
               <input id="btn_lock" value="确定" type="button">
               <input type="button" value="解锁"  onclick="loadStorage('shuchu')">
           </div>
       </div>
       <div id="pageOverlay"></div>

    还要加一部分css 不然按钮和输入框也会被遮住

     1 <style type="text/css">
     2     body {
     3         position: absolute;
     4         left: 0;
     5         right: 0;
     6         top: 0;
     7         bottom: 0;
     8     }
     9     .flex-con {
    10         position: absolute;
    11         left: 0;
    12         right: 0;
    13         top: 0;
    14         bottom: 0;
    15         display: flex;
    16         flex-direction: column;
    17         align-items: center;
    18         justify-content: center;
    19         z-index: 9999;
    20     }
    21 </style>

    1     <style type="text/css">
    2         *{ padding:0; margin:0;}
    3         #pageOverlay { visibility:hidden; position:fixed; top:0; left:0; z-index:1987; width:100%; height:100%; background:#000; filter:alpha(opacity=70); opacity:0.7; }
    4         /*IE6 fixed*/
    5         * html { background:url(*) fixed; }
    6         * html body { margin:0; height:100%; }
    7         * html #pageOverlay { position: absolute; left: expression(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth); top: expression(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight); }
    8     </style>

    css是我随便写的,有需要的同学可以根据自己的需求去订制。

  • 相关阅读:
    NET ERP系统架构设计
    WebApi的一种集成测试写法(in-memory)
    开发类工具
    GitHub版本控制
    TortoiseGit安装与配置(转)
    tortoisegit使用密钥连接服务器(转)
    重构一个功能块的总结
    脚本绘图工具总结(转)
    Oracle 多表关联更新
    数据结构与算法之递推算法 C++与PHP实现
  • 原文地址:https://www.cnblogs.com/shichina/p/10481172.html
Copyright © 2011-2022 走看看