你有几种实现点击锁定屏慕,输入密码解锁的效果的思路?

news2024/11/25 0:25:19

文章目录

  • 点击锁定,密码解锁
    • 1 需求解析
    • 2 思路
      • 2.1输入密码时回显
        • 2.1.1 利用prompt的输入值来判断
      • 2.2 输入密码时不回显
        • 2.2.1实现思路

点击锁定,密码解锁

1 需求解析

点击指定的按钮,当前的屏幕变为空白,
弹出对话框,当你输入正确密码时,
对话框消失,之前的页面显示。

2 思路

2.1输入密码时回显

回显:指的是进行输入动作的时候,屏幕实时清楚显示输入的信息。

2.1.1 利用prompt的输入值来判断

思路-步骤

  • 得到body元素,点击按钮触发事件
  • body的display样式为none
  • 弹出prompt对话框,输入密码
  • 密码对比,正确body的diaplay为block,密码不正确继续输入。

实现效果
请添加图片描述
实现代码

<body id="body">
  <div id="show">
    <button type="button" onclick="lock()">点击锁定</button>
    <img src="./test/2.webp" alt="" style="margin-top:50px;height:200px;height:200px">
  </div>
  <script>
    let body=document.getElementById('body')
    function lock(){
      body.style.display='none'
      setTimeout(()=>{
        showpr()
      },500)
    }
    function showpr(){
      let password=prompt('请输入密码')
      if(password=='1234567'){
        body.style.display='block'
      }else{
        body.style.display='none'
        showpr()
      }
    }
  </script>
</body>

2.2 输入密码时不回显

对于实现输入不回显,我们第一个想到的就是
input的type为password。
因为js中的prompt、confirm、alert有的不支持输入
有的输入会回显。
所以我们只能自己通过js来创建DOM来实现对话框效果。

2.2.1实现思路

思路

  • 创建需要的DOM
  • 得到要消失的div元素
    (不要将body消失,不然你创建的DOM加入body时不会显示)
  • 点击将要消失的元素的style设置为display:none
  • 弹出对话框输入密码解锁,正确显示消失的元素,错误继续输入。

实现效果

请添加图片描述
实现代码

<body id="body">
  <div id="show">
    <button type="button" onclick="lock()">点击锁定</button>
    <img src="./test/2.webp" alt="" style="margin-top:50px;height:200px;height:200px">
  </div>
  <script>
    var body=document.getElementById('body')
    var show=document.getElementById('show')
    let result=1234567
	//创建div元素
    let div=document.createElement('div')
    //设置div的属性
    div.setAttribute('style','width:400px;height:300px;border:1px solid;margin: 450px auto;border-radius:    15px;position:relative;display:block')
    div.setAttribute('id','showpr')
    //创建label元素
    let label=document.createElement('label')
    label.setAttribute('for','intpwd')
    label.setAttribute('style','position:absolute;top:150px;left:10px;')
    label.innerText='请输入你的密码:'

    let label1=document.createElement('label')
    label1.setAttribute('for','userName')
    label1.setAttribute('style','position:absolute;top:100px;left:10px;')
    label1.innerText='当前用户名:'
 
    let input1=document.createElement('input')
    input1.setAttribute('type','text')
    input1.setAttribute('name','userName')
    input1.setAttribute('style','position:absolute;top:100px;left:140px;height:20px;')
    input1.setAttribute('id','currentName')
    input1.setAttribute('readonly','true')
    input1.setAttribute('value',`${result}`)


    let input=document.createElement('input')
    input.setAttribute('type','password')
    input.setAttribute('name','intpwd')
    input.setAttribute('style','position:absolute;top:150px;left:140px;height:20px;')
    input.setAttribute('onchange','inPwd(event)')
    input.setAttribute('id','inpVal')

    let button=document.createElement('button')
    button.setAttribute('type','button')
    button.setAttribute('style','position:absolute;top:200px;left:140px;width:180px')
    button.setAttribute('onclick','confirmPwd()')
    button.innerText='确定'
  
    //将创建的其他元素添加到创建的div元素中
    div.appendChild(label)
    div.appendChild(input)
    div.appendChild(label1)
    div.appendChild(input1)
    div.appendChild(button)


    //body.appendChild(div)

    //showpr.style.display='block'
    // var inpwd=0
    function lock(){
        show.style.display='none'
        //将创建的div添加到body中
        body.appendChild(div)
        document.getElementById('showpr').style.display='block'
        document.getElementById('inpVal').value=''
    }
    function inPwd(e){
      console.log(e.target.value)
      inpwd=e.target.value
    }
    function confirmPwd(){
      if(inpwd==1234567){
        document.getElementById('showpr').style.display='none'
        show.style.display='block'
      }else{
       document.getElementById('inpVal').value=''
       alert('输入密码有误,请重新输入')
      }
    }
   
  </script>

好了这次的文章就到这了
如果觉得还不错的话,帮忙点个关注吧
希望能给博主点赞
🎨,评论🧶,收藏🥼三连一波

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT付费创作系统V2.0.8独立版 +WEB端+ H5端 + 小程序端+新增PC端绘画

ChatGPT付费创作系统V2.0.8提供单独的升级包&#xff0c;升级前先更新至2.0.7版本&#xff0c;再上传升级包替换&#xff0c;同是导入升级包数据库。ChatGPT2.0.8独立版核心功能增加了PC端绘画功能&#xff0c;绘画功能采用其他绘画接口-意间AI&#xff0c;后台一些小细节的优化…

电脑c盘哪些文件可以删除?这4种文件可以删!

我的电脑使用了快两年了&#xff0c;现在经常很卡顿&#xff0c;不知道是不是因为电脑c盘空间快满了导致的。电脑c盘哪些文件可以删除呢&#xff1f;请大家帮我看看&#xff01; 电脑的c盘一般会存储很多的临时文件和系统的文件。然而这些文件并不是都有用的。有些文件我们可以…

[golang 微服务] 9.go-micro + gorm实现商品微服务的分页查询

一.引入 上一节讲解 go-micro的负载均衡操作&#xff0c;go Web框(Gin,Beego)调用go-micro微服务等技术&#xff0c;这一节来看看 go-micro gorm实现 商品微服务的 分页查询操作,go-micro微服务中使用GORM和go web框架gin、beego中使用 GORM都是一样的 二.创建goodsinfo服务端…

git学习使用技巧

目录 关于版本控制 本地版本控制系统 集中化的版本控制系统 分布式版本控制系统 Git 是什么 直接记录快照&#xff0c;而非差异比较 近乎所有操作都是本地执行 Git 保证完整性 Git 一般只添加数据 三种状态 起步 - 初次运行 Git 前的配置 初次运行 Git 前的配置 用户…

2023年7月1日【青书学堂】考试 统计学(高起专)

2023年7月1日【青书学堂】考试 统计学(高起专) 注意:答案仅供参考 成绩:84.34 分 第1题 单选题 下列哪两个变量之间的相关程度高 ( ) A: 商品销售额和商品销售量的相关系数是0.9 B: 商品销售额与商业利润率的相关系数是0.84 C: 平均流通费用率与商业利润率的相关系数是-0…

ACL2023 | Multi-CLS BERT:传统集成的有效替代方案

进NLP群—>加入NLP交流群 在本文中&#xff0c;介绍了 Multi-CLS BERT&#xff0c;这是传统集成方法的有效替代方案。 这种基于 CLS 的预测任务的新颖方法旨在提高准确性&#xff0c;同时最大限度地减少计算和内存需求。 通过利用具有不同参数化和目标的多个 CLS token&…

数据结构-查找

数据结构-查找 1 知识框架2 顺序查找和折半查找2.1 顺序查找2.2折半查找2.3 分块查找 3 树型查找3.1 二叉排序树3.2 平衡二叉树3.3 B树和B树3.3.1 B树3.3.2 B树 4 散列表4.1 构造方法4.2 处理冲突的办法4.3性能分析 1 知识框架 2 顺序查找和折半查找 2.1 顺序查找 1.一般线性…

vue 基础入门

目录 vue 简介 vue 的特性 数据驱动视图 双向数据绑定 MVVM vue 的基本使用 vue 的调试工具 vue 的指令 1、内容渲染指令 2、属性绑定指令 3、事件绑定 4、双向绑定指令 v-model 5、 条件渲染指令 6 、列表渲染指令 vue过滤器 定义过滤器基本使用 私有过滤器和全…

web安全php基础_phpstudy pro安装

phpstudy pro是什么 phpstudy是一个php运行环境的集成包&#xff0c;用户不需要去配置运行环境&#xff0c;就可以使用&#xff0c;phpstudy不仅是一款比较好用的php调试环境工具&#xff0c;并且还包括了开发工具和常用手册&#xff0c;对于新手是有很大帮助的 windows下ph…

基于LLAMA-7B的lora中文指令微调

目录 1. 选用工程2. 中文llama-7b预训练模型下载3. 数据准备4. 开始指令微调5. 模型测试 前言&#xff1a; 系统&#xff1a;ubuntu18.04显卡&#xff1a;GTX3090 - 24G &#xff08;惨呀&#xff0c;上次还是A100&#xff0c;现在只有3090了~&#xff09; &#xff08;本文旨在…

I.MX RT1170之FlexSPI(3):NOR Flash手册分析和参数配置详解

在上一节中&#xff0c;我们分析了FlexSPI的相关参数&#xff1a;LUT表格的组成和FlexSPI结构体配置&#xff0c;这一节就以WINBOND的W25Q256JV NOR Flash为例&#xff0c;看一下如何根据这个NOR Flash的数据手册配置FlexSPI接口。 文章目录 1 SDK代码2 NOR Flash配置流程2.1 时…

java.lang.IllegalArgumentException: 找到多个名为spring_web的片段。这是不合法的相对排序。

问题 java.lang.IllegalArgumentException: 找到多个名为spring_web的片段。这是不合法的相对排序。 详细问题 笔者使用ServletJSP技术框架进行项目开发&#xff0c;对于项目进行国际化&#xff08;即i18n&#xff0c;实现中英文页面转换&#xff09;&#xff0c;需要引入 下…

【C语言初阶(9)】函数2

文章目录 1. 函数的嵌套调用和链式访问1.1 嵌套调用1.2 链式访问 2. 函数的声明和定义2.1 函数定义2.2 函数声明2.3 函数的实际应用 3. 函数递归3.1 什么是递归&#xff1f;3.2 递归使用条件3.3 递归的案例3.4 递归的优缺点 4. 递归练习题 1. 函数的嵌套调用和链式访问 函数和函…

悟道·天鹰 Aquila + 天秤 FlagEval,打造大模型能力与评测标准双标杆

为推动大模型在产业落地和技术创新&#xff0c;智源研究院发布“开源商用许可语言大模型系列开放评测平台” 2 大重磅成果&#xff0c;打造“大模型进化流水线”&#xff0c;持续迭代、持续开源开放。 开源商用许可语言大模型系列 悟道天鹰&#xff08;Aquila&#xff09; 语…

教师资格证考试(高中数学)-考什么

目录 考什么 及格线 科一-综合素质 ​编辑 科二-教育知识与能力 科三-学科知识与教学能力(数学) 题型 考什么 及格线 大家要明确3个分数&#xff1a; ✅卷面分数&#xff1a;满分为150分&#xff0c;也就是大家平时拿到的试卷及真题卷面分数。 ✅报告分数&#xff1a;…

React 之 组件化开发

本文主讲解类组件&#xff0c;函数组件会在后续文章中学习 一、组件化开发 1. 概念 组件化是一种分而治之的思想&#xff1a; 如果将一个页面中所有的处理逻辑放在一起&#xff0c;处理起来会变得非常复杂&#xff0c;不利于后续的管理以及扩展 但如果讲一个页面拆分成一个个小…

Web安全-AntSword(中国蚁剑)Webshell管理工具使用

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 工具下载地址02 工具介绍03 使用案例04 参考资料 01 工具下载地址 https://github.com/AntSwordProject/蚂剑工具的下载分为两个部分&#xff0c;一个是项目核心源码antSword&#xff0c;另一个是…

【算法】树形DP ①(树的直径)

文章目录 知识准备例题543. 二叉树的直径124. 二叉树中的最大路径和2246. 相邻字符不同的最长路径 相关题目练习687. 最长同值路径 https://leetcode.cn/problems/longest-univalue-path/solution/shi-pin-che-di-zhang-wo-zhi-jing-dpcong-524j4/1617. 统计子树中城市之间最大…

测试的流程,jira工具的使用

目录&#xff1a; 测试流程价值与体系测试计划业务架构分析思路bug基本概念bug处理流程测试总结业务架构分析工具plantuml测试流程管理jira系统-测试流程定制测试流程管理 jira 系统-Bug管理流程定制 1.测试流程价值与体系 软件测试流程 完成软件测试工作的必要步骤 测试流…

用图计算解密大脑,蚂蚁技术研究院与复旦联手启动类脑研究

大脑为什么会产生意识&#xff1f;我们为什么会失眠&#xff1f;帕金森、阿尔兹海默等神经性疾病如何有效治疗&#xff1f;这一切谜题的背后都绕不开脑科学。可以说脑科学问题是人类面临的基础科学问题之一&#xff0c;是我们解密人类自身的“终极疆域”。 我们的大脑由大约86…