我的编程空间,编程开发者的网络收藏夹
学习永远不晚

js实现自动锁屏功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

js实现自动锁屏功能

1.使用场景

有这么一个需求,开发了一套系统,当用户离开桌面或者一段时间不操作的话,需要把该系统所有打开页面锁定起来,就跟桌面锁屏一样,只能输入密码验证成功后,或者重新登录,才可以继续操作页面,如果刷新页面,也要保持锁定。就像下图一样。当然用户也可以手动触发锁屏。目的是防止他人随意操作系统的重要内容。那么该如何去实现呢?

5s锁屏效果如下:

2.思路

  1. 首先需要一个变量isLock表示页面是否锁定。由于多个页面需要共享这个数据,且刷新后依然能够获取到,所以我使用了localStorage储存在本地。isLock为true的时候就展示锁屏样式。
  2. 设置一个定时器 setTimeout,比如代码中设置页面无操作n秒后锁屏,那么n秒后执行锁屏操作lockPro(),即var timer = setTimeout(lockPro, n)
  3. 需要监测window的mousemove事件,监测用户鼠标移动动作,判断屏幕有没有被锁定,如果已经锁定,则不做任何操作,如果屏幕还没有锁定,需要设置一个变量moveTime记录每次鼠标移动时的时间,并保存到localStorage中,并且清除定时器timer,重新计时。
  4. setInterval轮询监听isLock,每1s获取一次,以便及时拿到锁屏状态。
  5. 锁屏操作lockPro,判断当前时间与上次鼠标操作的时间即moveTime的差值,如果小于n秒,则认为不需要锁屏,如果大于等于n秒,则需要锁屏,并更新锁屏状态isLock
  6. 判断状态为锁定后,清除定时器timer,结束定时任务。
  7. 判断状态为未锁定后,重置定时器,即先清除timer,再设置一个timer
  8. 退出登录时,清除本地缓存isLock。
  9. 密码解锁时,清除本地缓存isLock,重新设置moveTime,重置定时器。

有点绕,需要好好捋一捋。

3.代码实现

以下代码是不完全代码,html结构省略了,大家自由发挥。


// app.vue

data () {
  return {
    timeOut: 5000,
    timer: null,
    isLock: 'false'
  }
},
mounted () {
  this.timer = setTimeout(this.lockPro, this.timeOut)
  // 首次设置操作时间
  localStorage.setItem('moveTime', Date.now())
  // 首次判断状态
  this.modalStatus()
  // 轮询监听状态
  setInterval(this.modalStatus, 1000)
  // 监听鼠标事件
  this.events()
},
methods:{
   events() {
      window.onmousemove = () => {
        // console.log('鼠标移动了')
        if (!this.isLock) {
          localStorage.setItem('moveTime', Date.now())
          this.clearLocaPro('continue')
        }
      }
    },
    modalStatus() {
      if (localStorage.getItem('isLock') === 'true') {
        // console.log('锁屏了')
        this.isLock = true
        this.clearLocaPro()
      } else {
        // console.log('当前没锁屏')
        this.isLock = false
        this.clearLocaPro('continue')
      }
    },
    lockPro() {
      if (!this.timeOut) {
        localStorage.setItem('isLock', 'false')
        this.clearLocaPro('continue')
        return
      }
      if (Date.now() - localStorage.getItem('moveTime') < this.timeOut) {
        localStorage.setItem('isLock', 'false')
        this.clearLocaPro('continue')
      } else {
        localStorage.setItem('isLock', 'true')
        this.clearLocaPro()
      }
    },
    clearLocaPro(status) {
      if(this.timer){
         clearTimeout(this.timer)
      }
      if (status === 'continue') {
        this.timer = setTimeout(this.lockPro, this.timeOut)
      }
    },
    // 手动锁定
    handleLock(){
      this.clearLocaPro()
      localStorage.setItem('isLock', 'true')
    },
    // 密码解锁
    unlock(){
      localStorage.removeItem('isLock')
      localStorage.setItem('moveTime', Date.now())
      this.clearLocaPro('continue')
    },
    ...
    // 别忘了退出登录也要清除isLock
}

到此这篇关于js实现自动锁屏功能的文章就介绍到这了,更多相关js 自动锁屏 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

js实现自动锁屏功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用JavaScript怎么实现自动锁屏功能

这篇文章将为大家详细讲解有关使用JavaScript怎么实现自动锁屏功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.使用场景有这么一个需求,开发了一套系统,当用户离开桌面或者一段时间不
2023-06-15

win7怎么开启自动锁屏功能

这篇文章主要介绍“win7怎么开启自动锁屏功能”,在日常操作中,相信很多人在win7怎么开启自动锁屏功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win7怎么开启自动锁屏功能”的疑惑有所帮助!接下来,请跟
2023-06-28

轻松实现Android锁屏功能

锁屏需要引入设备超级管理员。在文档Android开发文档的Administration中有详细的说明。Android设备管理系统功能和控制访问。 主要有一下几个步骤: 1 创建广播接收者,实现DeviceAdminReceiverpack
2022-06-06

Android实现一键锁屏功能

这篇文章主要介绍了Android实现一键锁屏,在xml中创建device_admin.xml,在manifest中加入详细文件,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

Python+uiautomator2实现手机锁屏解锁功能

业务需求:需要测试手机滑动解锁失败时事件的次数及等待的时间,本来想利用Python+Appium实现,但是Appium运行时自动给我解锁了.... 部分解释摘抄自:https://testerhome.com/topics/11357 py
2022-06-02

腾讯云服务器关闭自动锁屏功能

如果腾讯云服务器关闭自动锁屏功能,那么您可能需要手动设置以启用这一功能。以下是一些步骤:在控制台或服务器管理页面中打开“云服务器控制台”或“服务器列表”。在弹出的“设置”对话框中,选择“启用自动锁定屏幕”选项卡。在“启用锁定屏幕”框中,填写相应的设置。例如,您可以填写“允许在自动锁定时解锁您的屏幕”的选项。确认是否正确设置了自动锁定时间和解锁方式。请注意,在设置启
2023-10-26

腾讯云服务器关闭自动锁屏功能吗

腾讯云服务器关闭自动锁屏功能需要您确认以下几点:服务是否正常运行:当腾讯云服务器关闭自动锁屏功能时,它会弹出提醒窗口,提示您确认是否需要重新启动云服务器。在确认后,您可以按照提示重新启动云服务器,以确保您的账户和数据正常使用。您的数据是否安全:为了确保账户和数据的安全,建议您确认腾讯云服务器的数据是否受到保护。例如,您可以在服务器上启用防火墙、数据加密技术等安全措施,以确保数据的安全性。服务是否有其他问题:如...
2023-10-26

腾讯云服务器关闭自动锁屏功能怎么办

如果腾讯云服务器关闭了自动锁屏功能,您可以按照以下步骤进行操作:1.首先,您可以通过腾讯云控制台的“设置-通用-设置向导”来开启自动锁屏功能。2.在设置向导中,您可以选择开启自动锁屏功能的方式,比如使用腾讯云自带的应用助手等。3.如果您之前已经安装过腾讯云的应用助手,那么您可以在设置向导中将其卸载。4.完成上述步骤后,您可以在应用助手中开启自动锁屏功能,并在主界面中选择“开启锁屏状态提醒”。5.设置完成后,您可以将需要...
2023-10-26

怎么用HTML+JS实现监控切屏功能

这篇文章主要介绍“怎么用HTML+JS实现监控切屏功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用HTML+JS实现监控切屏功能”文章能帮助大家解决问题。项目描述项目要求做到监控网页状态记录
2023-06-29

iOS滑动全屏实现返回功能

本文实例为大家分享了iOS滑动全屏实现返回功能的具体代码,供大家参考,具体内容如下 系统自带的滑动返回功能,只能滑动边缘返回,而我们希望通过滑动全屏实现返回功能。 定义BaseNavigationController来取代UINavigat
2022-06-02

vue怎么实现滑动解锁功能

本文小编为大家详细介绍“vue怎么实现滑动解锁功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现滑动解锁功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下话不多说,直接上代码;
2023-06-29

webpack自动打包功能实现

webpack是前端项目构建工具打包工具,本文通过实例代码给大家介绍webpack自动打包功能实现,感兴趣的朋友跟随小编一起看看吧
2023-02-09

编程热搜

目录