基于JavaScript實(shí)現(xiàn)全屏透明遮罩div層鎖屏效果
廢話不多說了,直接給大家寫js代碼了,代碼如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>js全屏透明遮罩鎖屏效果</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <!--把下面代碼加到<head>與</head>之間--> <style type="text/css"> #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;} /*IE6 fixed*/ * html{background:url(*) fixed;} * html body{margin:0;height:100%;} * html #pageOverlay{position:absolute;left:expression(documentElement.scrollLeft+documentElement.clientWidth-this.offsetWidth);top:expression(documentElement.scrollTop+documentElement.clientHeight-this.offsetHeight);} </style> <script language="javascript"> (function(){ // 獲取對(duì)象 var $ = function (id){ return document.getElementById(id); }; // 遍歷 var each = function(a, b) { for (var i = 0, len = a.length; i < len; i++) b(a[i], i); }; // 事件綁定 var bind = function (obj, type, fn) { if (obj.attachEvent) { obj['e' + type + fn] = fn; obj[type + fn] = function(){obj['e' + type + fn](window.event);} obj.attachEvent('on' + type, obj[type + fn]); } else { obj.addEventListener(type, fn, false); }; }; // 移除事件 var unbind = function (obj, type, fn) { if (obj.detachEvent) { try { obj.detachEvent('on' + type, obj[type + fn]); obj[type + fn] = null; } catch(_) {}; } else { obj.removeEventListener(type, fn, false); }; }; // 阻止瀏覽器默認(rèn)行為 var stopDefault = function(e){ e.preventDefault ? e.preventDefault() : e.returnValue = false; }; // 獲取頁面滾動(dòng)條位置 var getPage = function(){ var dd = document.documentElement, db = document.body; return { left: Math.max(dd.scrollLeft, db.scrollLeft), top: Math.max(dd.scrollTop, db.scrollTop) }; }; // 鎖屏 var lock = { show: function(){ $('pageOverlay').style.visibility = 'visible'; var p = getPage(), left = p.left, top = p.top; // 頁面鼠標(biāo)操作限制 this.mouse = function(evt){ var e = evt || window.event; stopDefault(e); scroll(left, top); }; each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) { bind(document, o, lock.mouse); }); // 屏蔽特定按鍵: F5, Ctrl + R, Ctrl + A, Tab, Up, Down this.key = function(evt){ var e = evt || window.event, key = e.keyCode; if((key == 116) || (e.ctrlKey && key == 82) || (e.ctrlKey && key == 65) || (key == 9) || (key == 38) || (key == 40)) { try{ e.keyCode = 0; }catch(_){}; stopDefault(e); }; }; bind(document, 'keydown', lock.key); }, close: function(){ $('pageOverlay').style.visibility = 'hidden'; each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) { unbind(document, o, lock.mouse); }); unbind(document, 'keydown', lock.key); } }; bind(window, 'load', function(){ $('btn_lock').onclick = function(){ lock.show(); }; $('pageOverlay').onclick = function(){ lock.close(); }; }); })(); </script> </head> <body> <!--把下面代碼加到<body>與</body>之間--> <button id="btn_lock" style="position:absolute;left:50%;top:40%;">開啟鎖屏</button> <ol id="test"> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> <li>www.dbjr.com.cn</li> </ol> <div id="pageOverlay"></div> </body> </html>
下面一段代碼是用js寫的登錄遮罩效果
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>遮罩</title> <style> #blanks{ display:none; width:100%; //height:100%; height:100px; position:absolute; top:0; background-color:#ccc; z-index:1000; -moz-opacity: 0.7; opacity:.70; filter: alpha(opacity=70); } #login{ padding:18px; display:none; background-color:pink; width:300px; height:100px; position:absolute; left:400px; top:20%; z-index:1001; } </style> </head> <body onload="setHeight()"> <div id="content"> <input type="button" value="登陸" onclick="showLogin()"> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非常快。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非常快。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非常快。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非???。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非常快。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非常快。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非???。在之后的游戲中,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> <p>《人生》前15年左右都是些教學(xué)關(guān)卡,弱弱的,你還沒法點(diǎn)“跳過”。 作為一個(gè)初來乍到的新手,你有大把的時(shí)間和用不完的精力,但幾乎毫無經(jīng)驗(yàn)。你會(huì)發(fā)現(xiàn)游戲的大多數(shù)元素, 像什么牛逼的工作啦,財(cái)富啦,伴侶啦都還沒有解鎖,一直到你真正擁有了它們。 這段時(shí)間,你的技能升級(jí)得非??臁T谥蟮挠螒蛑?,你再也不可能像這個(gè)階段一樣時(shí)間充裕而且精力充沛。 如果想要玩出水平,最重要的是要把時(shí)間安排得盡可能合理。你的任何一個(gè)行動(dòng)都會(huì)改變你的狀態(tài)和技能 </p> </div> <div id="blanks"></div> <div id="login"> <form method="post"> 用戶名:<input type="text" name="username" ><br/> 密 碼:<input type="password" name="password"><br/> <input type="submit" value="提交"> </form> <div id="btnclose" style="position:absolute;left:93%;top:0%;z-index:5;"> <img src="close.png" onclick="hidediv();"/> </div> </div> </body> </html> <script type="text/javascript"> function setHeight() { var h=document.documentElement.scrollHeight; document.getElementById("blanks").style.height=h+"px"; } function hidediv() { document.getElementById("login").style.display="none"; document.getElementById("blanks").style.display="none"; } function showLogin() { document.getElementById("login").style.display="block"; document.getElementById("blanks").style.display="block"; } </script>
以上所述是基于JavaScript實(shí)現(xiàn)全屏透明遮罩div層鎖屏效果的相關(guān)內(nèi)容,希望對(duì)大家有所幫助。
相關(guān)文章
JS小數(shù)運(yùn)算出現(xiàn)多為小數(shù)問題的解決方法
這篇文章主要介紹了JS小數(shù)運(yùn)算出現(xiàn)多為小數(shù)問題的解決方法,需要的朋友可以參考下2016-06-06location.href 在IE6中不跳轉(zhuǎn)的解決方法與推薦使用代碼
在js中,我們經(jīng)常使用location.href來實(shí)現(xiàn)頁面的跳轉(zhuǎn),為了方便我們寫成函數(shù)。下面就分別說明下,下面的一些代碼的實(shí)現(xiàn)問題。2010-07-07javascript兩種function的定義介紹及區(qū)別說明
javascript兩種function的定義方式function a(){}和a=function(){}具體使用如下,感興趣的朋友可以參考下,希望對(duì)你對(duì)你學(xué)習(xí)function的定義有所幫助2013-05-05詳解extract-text-webpack-plugin 的使用及安裝
這篇文章主要介紹了詳解extract-text-webpack-plugin 的使用及安裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06JS面向?qū)ο缶幊袒A(chǔ)篇(三) 繼承操作實(shí)例詳解
這篇文章主要介紹了JS面向?qū)ο缶幊汤^承操作,結(jié)合實(shí)例形式詳細(xì)分析了JS面向?qū)ο罄^承的具體概念、原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03JavaScript 瀏覽器對(duì)象模型BOM原理與常見用法實(shí)例分析
這篇文章主要介紹了JavaScript 瀏覽器對(duì)象模型BOM原理與常見用法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript瀏覽器對(duì)象模型BOM基本概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12