如何用纯JavaScript实现点击唤起锁屏及密码解锁功能?
实现点击触发的密码锁屏功能
我帮你完善了这个锁屏功能,修复了现有代码里的小问题,同时加上了密码验证和回车解锁的逻辑,完全符合你的需求。下面是完整的可运行代码:
完整代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Password Lockscreen</title> <style> .lock-screen { position: absolute; /* 修正原代码的display: absolute错误 */ top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0, 0, 0, .7); display: flex; justify-content: center; align-items: center; display: none; /* 初始隐藏锁屏 */ } .lock-screen input { padding: 8px 12px; font-size: 16px; border-radius: 4px; border: none; outline: none; } </style> </head> <body> <button>Lockscreen</button> <div class="lock-screen"> <input type="text" placeholder="Password" id="password-input"> </div> <script> const btn = document.querySelector('button'); const lockscreen = document.querySelector('.lock-screen'); const passwordInput = document.getElementById('password-input'); const targetPassword = 'your-password'; // 这里设置你想要的指定密码 // 点击按钮显示锁屏 btn.addEventListener('click', function(){ lockscreen.style.display = 'flex'; passwordInput.focus(); // 自动聚焦输入框,提升用户体验 }); // 监听输入框的回车事件,验证密码 passwordInput.addEventListener('keydown', function(e){ // 判断是否按下回车键 if(e.key === 'Enter'){ if(this.value === targetPassword){ // 密码正确,隐藏锁屏 lockscreen.style.display = 'none'; this.value = ''; // 清空输入框内容 } else { // 密码错误,可以添加提示,比如弹窗或者输入框样式变化 alert('Incorrect password, please try again!'); this.value = ''; this.focus(); } } }); </script> </body> </html>
关键修改和说明
- CSS修正:原代码里的
display: absolute是错误的,应该改为position: absolute,这样才能让锁屏层覆盖整个页面;同时移除了重复的display属性,保持代码整洁。另外给输入框加了基础样式,提升视觉效果。 - JS完善:
- 给变量添加了
const声明,避免全局变量污染; - 设置了指定密码变量
targetPassword,你可以直接修改这个值来设置自己想要的密码; - 添加了输入框自动聚焦的逻辑,点击锁屏按钮后用户可以直接输入密码,不用手动点击输入框;
- 监听输入框的回车事件,判断输入的密码是否匹配,匹配则隐藏锁屏,不匹配则给出提示并清空输入框。
- 给变量添加了
- 用户体验优化:密码错误时会弹出提示,同时自动清空输入框并重新聚焦,方便用户再次输入。
内容的提问来源于stack exchange,提问作者Hiep Nguyen
相关产品推荐
相关产品推荐

