基于JavaScript实现全屏透明遮罩div层锁屏效果


Posted in Javascript onJanuary 26, 2016

废话不多说了,直接给大家写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(){
// 获取对象
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);
};
};
// 阻止浏览器默认行为
var stopDefault = function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false;
};
// 获取页面滚动条位置
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;
// 页面鼠标操作限制
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>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</li>
<li>3water.com</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年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</p>
<p>《人生》前15年左右都是些教学关卡,弱弱的,你还没法点“跳过”。
作为一个初来乍到的新手,你有大把的时间和用不完的精力,但几乎毫无经验。你会发现游戏的大多数元素,
像什么牛逼的工作啦,财富啦,伴侣啦都还没有解锁,一直到你真正拥有了它们。
这段时间,你的技能升级得非常快。在之后的游戏中,你再也不可能像这个阶段一样时间充裕而且精力充沛。
如果想要玩出水平,最重要的是要把时间安排得尽可能合理。你的任何一个行动都会改变你的状态和技能
</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实现全屏透明遮罩div层锁屏效果的相关内容,希望对大家有所帮助。

Javascript 相关文章推荐
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
Feb 03 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
May 14 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
Apr 10 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 #Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 #Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 #Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 #Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 #Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 #Javascript
js实现的页面矩阵图形变换特效
Jan 26 #Javascript
You might like
一贴学会PHP 新手入门教程
2009/08/03 PHP
php header Content-Type类型小结
2011/07/03 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
百度地图api如何使用
2015/08/03 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
决策树的python实现方法
2014/11/18 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
彻底理解Python中的yield关键字
2019/04/01 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
python数据类型强制转换实例详解
2020/06/22 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
化学教师自荐信范文
2013/12/28 职场文书
数控个人求职信范文
2014/02/03 职场文书
机关出纳岗位职责
2014/04/03 职场文书
总经理人事任命书
2014/06/05 职场文书
抗震救灾标语
2014/06/26 职场文书
工程催款通知书
2015/04/17 职场文书
李强为自己工作观后感
2015/06/11 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
2019年教师入党申请书
2019/06/27 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS