基于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 相关文章推荐
在html页面中包含共享页面的方法
Oct 24 Javascript
使用typeof方法判断undefined类型
Sep 09 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
jquery带翻页动画的电子杂志代码分享
Aug 21 Javascript
AngularJS 过滤与排序详解及实例代码
Sep 14 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
Dec 23 Javascript
JScript实现地址选择功能
Aug 15 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
vue 自定义右键样式的实例代码
Nov 06 Javascript
Node与Python 双向通信的实现代码
Jul 16 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
JS 统计时间
2021/03/09 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
Python Requests 基础入门
2016/04/07 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
python使用多进程的实例详解
2018/09/19 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
售后服务承诺书
2014/03/26 职场文书
个人工作表现评语
2014/04/30 职场文书
运动会演讲稿300字
2014/08/25 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
Spring实现内置监听器
2021/07/09 Java/Android