javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)


Posted in Javascript onAugust 15, 2014

功能描述:打开一个网站的网页,过5分钟不动作,就会锁定页面,隐藏内容容器,显示一个容器用于输入密码,输入正确的密码来解锁。锁定后即使用户刷新页面,还是保留原来的状态。如已经锁定的,需要继续锁定,否则显示内容。
 
示例代码如下,通过document.onmouseover来实现多少分钟没有动作,使用计时器来实现。

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript实现系统屏幕保护效果(锁定网页)</title>
</head>

<body>
<div id="dvContent">内容<br />内容<br />内容<br />内容<br />内容<br />内容</div>
<div id="dvPassword" style="display:none">输入密码:<input type="password" id="txtPwd" /><input type="button" value="确定" onclick="check()"/></div>
<script>
  if (document.cookie.indexOf('lock=1') != -1) ShowContent(false);
  var delay = 10 * 1000,timer;//10s后锁定,修改delay为你需要的时间,单位毫秒
  function startTimer() {
    clearTimeout(timer);
    timer = setTimeout(TimerHandler, delay);
  }
  function TimerHandler() {
    document.cookie = 'lock=1';
    document.onmousemove = null;//锁定后移除鼠标移动事件
    ShowContent(false);
  }
  function ShowContent(show) {
    document.getElementById('dvContent').style.display = show ? 'block' : 'none';
    document.getElementById('dvPassword').style.display = show ? 'none' : 'block';
  }
  function check() {
    if (document.getElementById('txtPwd').value == '123') {
      document.cookie = 'lock=0';
      ShowContent(true);
      startTimer()//重新计时
      document.onmousemove = startTimer; //重新绑定鼠标移动事件
    }
    else alert('密码不正确!!');
  }
  window.onload = function () {
    document.onmousemove = startTimer;
    startTimer();
  }
</script>
</body>
</html>
Javascript 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
基于jquery的给文章加入关键字链接
Oct 26 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
vue elementui form表单验证的实现
Nov 11 Javascript
vue移动端屏幕适配详解
Apr 30 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
vue中watch和computed的区别与使用方法
Aug 23 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
Aug 15 #Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 #Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 #Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 #Javascript
js创建表单元素并使用submit进行提交
Aug 14 #Javascript
使用typeof判断function是否存在于上下文
Aug 14 #Javascript
java、javascript实现附件下载示例
Aug 14 #Javascript
You might like
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
图片按比例缩放函数
2006/06/26 Javascript
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
详解python3实现的web端json通信协议
2016/12/29 Python
解决Python requests 报错方法集锦
2017/03/19 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
python3爬取各类天气信息
2018/02/24 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
新电JAVA笔试题目
2014/08/31 面试题
书香校园活动方案
2014/02/28 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Python合并多张图片成PDF
2021/06/09 Python
Python爬取某拍短视频
2021/06/11 Python
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers