? 因為工作需要,所以在網上找了一些素材來弄這個功能。在我找到的素材中,大多都是不完善的。雖然我的也不是很完善,但是怎么說呢。要求不是很高的話。可以直接拿來用的【需要引用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是我隨便寫的,有需要的同學可以根據自己的需求去訂制。
?