基于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 相关文章推荐
IE与FireFox的兼容性问题分析
Apr 22 Javascript
在模板页面的js使用办法
Apr 01 Javascript
jQuery版仿Path菜单效果
Dec 15 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
Apr 24 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
Dec 27 Javascript
JavaScript中Math.SQRT2属性的使用详解
Jun 14 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
Vue.JS入门教程之列表渲染
Dec 01 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
Nov 10 Javascript
原理深度解析Vue的响应式更新比React快
Apr 04 Javascript
从表单校验看JavaScript策略模式的使用详解
Oct 17 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
星际原理概述
2020/03/04 星际争霸
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
js断点调试经验分享
2017/12/08 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
如何理解python面向对象编程
2020/06/01 Python
python numpy库np.percentile用法说明
2020/06/08 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
市场营销专业个人求职信范文
2013/12/14 职场文书
学校采购员岗位职责
2014/01/02 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
土建施工员岗位职责
2014/07/16 职场文书
拆迁委托协议书
2014/09/15 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
初婚初育证明范本
2015/06/18 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js