前端angular 实现验证码 输入+展示(大框+加粗内容 )

参考用原生方在手机上此效果 如何实现一个4位验证码输入框效果

  • 输入使用的任旧是html的input元素,只是让它看不到了
  • 只是把输入到input元素里的内容取到的内容放在改过样式的div里
  • 不需要dom操作,直接用双向绑定就拿到数据;使用动态样式 设置了激活的样式
  1. input输入框
    1. html 
    <input
      class="code-input"
      type="text"//文本输入框
      autoComplete="one-time-code"//验证码
      maxLength="6"//限制输入6位
      inputMode="numeric"//唤起手机上的数字输入键盘
      pattern="[0-9]*"
      [(ngModel)]="code"//angular的数据双向绑定
      (focus)="onInputFocus()"//聚焦事件
      (blur)="onInputBlur()"//失焦事件
    />

                2.css

.code-input{
  opacity: 0;//隐藏输入框
  position: absolute;//确保可以被点到
  width: 100%;
  height: 100%;
}

2.展示的验证码

        1.单个div的html 

 <!-- 在 TypeScript 或 JavaScript 中,可以使用方括号 [] 访问字符串索引例如,要获取字符串 code 的第一位 code[0]即可-->
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 0 && isInputFocused }"
    >
      {{ code[0] }}
    </div>

 完整的html 

<div class="code-box">
    <!-- 在 TypeScript 或 JavaScript 中,可以使用方括号 [] 访问字符串索引例如,要获取字符串 code 的第一位 code[0]即可-->
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 0 && isInputFocused }"
    >
      {{ code[0] }}
    </div>
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 1 && isInputFocused }"
    >
      {{ code[1] }}
    </div>
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 2 && isInputFocused }"
    >
      {{ code[2] }}
    </div>
    <div class="divider"></div>
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 3 && isInputFocused }"
    >
      {{ code[3] }}
    </div>
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 4 && isInputFocused }"
    >
      {{ code[4] }}
    </div>
    <div
      class="code-item"
      [ngClass]="{ active: code.length === 5 && isInputFocused }"
    >
      {{ code[5] }}
    </div>

2.css

.code-box {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
// 分割线
.divider {
  border-top: 1px solid black;
  width: 1rem;
}
.code-item {
  width: 3rem;
  height: 3rem;
  border: 1px solid #e5e6eb;
  border-radius: 5px;

  text-align: center;
  line-height: 2.8rem;
  font-size: 1.5rem;
  color: #000;
  font-weight: bold;
  transition: border 0.3s;
  box-sizing: border-box;
}
.active {
  border: 3px solid #1e68fc !important;
}

3.ts

  code: string = "";

这样就完成了一个验证码 输入+展示(大框+加粗内容 )的效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全球大气二氧化碳浓度2°x2.5°栅格模拟数据集(1992-2020)

全球大气二氧化碳浓度2x2.5栅格模拟数据集&#xff08;1992-2020&#xff09; 全球大气二氧化碳浓度2x2.5栅格模拟数据集&#xff08;1992-2020&#xff09;是以2002-2012年全球对流层CO2浓度卫星遥感产品&#xff08;AIRS&#xff0c;AIRx3C2M 005&#xff09;为基础&#xff…

中国FinOps现状调查报告(2023)》亮点解读

今年以来&#xff0c;我们举办了多期FinOps的专题分享&#xff0c;邀请了美图、腾讯、B站、趣丸、知乎等厂商和行业专家&#xff0c;分享他们在FinOps领域的经验。我们也发现越来越多的人对FinOps产生了浓厚的兴趣&#xff0c;而且FinOps的成熟度也在逐渐提升。 降本增效&…

前端如何捕获网络问题导致的接口失败 net::ERR_NETWORK_IO_SUSPENDED

上传大文件时电脑休眠、页面静置导致接口报网络错误&#xff0c;上传失败 最近遇到了上传文件遇到网络波动、超时、网络中断情况下需要重传的需求刚开始排查只能在控制台看到报错net::ERR_NETWORK_IO_SUSPENDED&#xff0c;一头雾水。后加上catch捕获异常进行判断 fetch(/upl…

uniapp中uview组件库丰富的Slider 滑动选择器的使用方法

目录 #平台差异说明 #基本使用 #设置最大和最小值 #设置步进值 #禁用状态 #自定义按钮的内容和样式 #自定义滑动选择器整体的样式 #此页面源代码地址 #API #Props #Slider Events 该组件一般用于表单中&#xff0c;手动选择一个区间范围的场景。 说明 该组件在H5&…

如何制作可预约的上门维修服务小程序?

上门维修服务已经成为人们日常生活中不可或缺的一部分。为了满足这一需求&#xff0c;我们学习如何无经验自己制作上门维修服务小程序。 首先&#xff0c;打开乔拓云-门店系统的后台&#xff0c;可以看到有很多各行各业的模版。这些模版涵盖了各种行业&#xff0c;包括家电维修…

竞赛保研 基于机器视觉的行人口罩佩戴检测

简介 2020新冠爆发以来&#xff0c;疫情牵动着全国人民的心&#xff0c;一线医护工作者在最前线抗击疫情的同时&#xff0c;我们也可以看到很多科技行业和人工智能领域的从业者&#xff0c;也在贡献着他们的力量。近些天来&#xff0c;旷视、商汤、海康、百度都多家科技公司研…

Js的$如同 sed的 java的$0 指代matcher匹配到的内容的符号

Js的$&如同 sed的& java的$0 $& 可用于Js,Vscode,RJTextEd,editplus,notepad, 在 Vscode,RJTextEd,editplus,notepad,等的替换中, 启用正则, 就能使 $&生效, 比如 ($&)表示给匹配到的内容加上括号 $& 可用于Js的String的replace(和replaceAll( 的第二…

《软件方法(下)》8.2.4-8.2.5 类和属性的命名,审查类和属性(202401更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.2 建模步骤C-1 识别类和属性 8.2.4 类和属性的命名 8.2.4.2 关于DDD话语中的“通用语言” DDD&#xff08;领域驱动设计&#xff09;话语中有“通用语言&#xff08;Ubiquitous L…

DBeaver配置达梦数据库连接

随着信创逐渐推广&#xff0c;达梦数据库也成为流行。下面展示如何使用dbeaver配置达梦数据库连接 1 驱动新建 菜单&#xff0c;数据库->驱动管理器 2 驱动信息填写 选择新建之后&#xff0c;弹出一个填写页面 需要填写的几个关键信息&#xff1a; 驱动名称&#xff1a;…

迈向更高质量的深度估计

题目&#xff1a; Towards High Quality Depoth Estimation 摘要 目前的深度估计从业人员大多follow the settings of specific backbone without thinking about why is that。本文将详细探索从数据&#xff08;不同类型数据集加载、稳定性、预处理、数据生成&#xff09;&a…

从工程和科学问题到实际解决方案——《Python应用数值方法——解决工程和科学问题》

内容简介 《Python应用数值方法——解决工程和科学问题》是为想要学习和应用数值方法来解决工程和科学问题的学生撰写的。书中提供了足够丰富的理论知识。如果读过本书的姊妹篇《工程与科学数值方法的MATLAB实现(第4版)》&#xff0c;就会发现过渡到Python程序是无缝的&#x…

PLC-RecorderV3通过复制粘贴,便捷地处理采集变量的技巧

如何快速、批量创建或者修改采集变量呢&#xff1f;从早期版本开始&#xff0c;PLC-Recorder就有了导入、导出的功能&#xff0c;可以通过.CSV格式进行批量操作。从V3版本开始&#xff0c;又增加了简单的复制粘贴功能来便捷地进行变量操作。下面描述一下操作过程&#xff1a; …

vue3 基础+进阶(三、项目篇:状态管理库、路由以及一些基本配置)

目录 第三章 状态管理库:Pinia 3.1 创建空Vue项目并安装Pinia 3.1.1 创建空Vue项目 3.1.2 安装Pinia以及持久化工具 3.2 使用pinia 3.1.1 使用案例 3.1.2 规范问题 3.1.3 简化&#xff1a;结构赋值 第四章 Vue3的Router路由理解&#xff08;与vue2类比&#xff09; …

威尔仕2023年的统计数据

威尔仕健身房更新了2023年的统计数据&#xff0c;大家可以猜一猜我是哪一个称号&#xff1f;虽然小伙伴们的健身时长各有不同&#xff0c;有时候在课程中我也会分享自己健身的案例&#xff0c;看似一个简单的增强环路&#xff0c;旁边会有很多的调节环路来限制增强环路的增长&a…

CMA认证和CNAS认可哪个更专业?如何获取CMA、CNAS软件测试报告?

企事业单位或个人在选择软件检测机构时&#xff0c;首先需要考虑的就是该检测机构有无资质认证&#xff0c;这将关系到获取的检测报告的专业性&#xff0c;那么检测行业的CMA认证和CNAS认可哪个更专业呢?软件企业又该如何获取CMA、CNAS软件测试报告? 一、CMA认证是什么?  …

电源管理芯片常见故障有哪些?如何处理这些故障?

电源管理芯片常见故障 电源管理芯片是电子设备的关键器件&#xff0c;负责电能的转换、配电、检测和其他电源管理。在使用过程中&#xff0c;电源芯片也会出现一些故障&#xff0c;常见的故障有&#xff1a; 1. 电源芯片损坏 长时间的使用可能会导致电源管理芯片损坏&#xff0…

Profinet转Modbus使设备互联更简单

在工业自动化领域&#xff0c;为了使设备互联更加简单&#xff0c;可以将Modbus和Profinet相互转换。这样一来&#xff0c;设备之间的互联就变得更加方便和高效。通过Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;&#xff0c;设备之间的通信变得更加灵活和可靠…

斐讯N1盒子刷YYF固件如何清理内存,恢复出厂设置

斐讯N1盒子刷YYF固件&#xff0c;使用一段时间后内存不足。 这时候怎么有效清理内存&#xff1f; 1.不要使用系统自带的恢复出厂设置功能。这个恢复出厂设置后并不能清空内存。 2.使用yyf固件自己的恢复出厂设置功能。

线性代数-第五课,第六课,第七课,第八课

第五课 判断某向量是否可由某向量组线性表示 把向量组组成一个行列式&#xff0c;计算行列式的秩 把所有向量放在一起构成一个行列式&#xff0c;计算行列式的秩 如果两个行列式的秩相等&#xff0c;表示可以线性表示&#xff0c;写答案的格式如下 线性表示&#xff1a;bk…

SAFe大规模敏捷企业级实训

课程简介 SAFe – Scaled Agile Framework是目前全球运用最广泛的大规模敏捷框架&#xff0c;也是成长最快、最被认可、最有价值的规模化敏捷框架&#xff0c;目前全球SAFe认证专业人士已达80万人&#xff0c;福布斯100强的70%都在实施SAFe。本课程是一个2天的 SAFe权威培训课…