前端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 = "";

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

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular是一个流行的前端框架,用于构建Web应用程序。它由Google开发并维护,采用TypeScript语言编写。Angular提供了一套完整的工具和功能,用于开发现代化的单页应用程序(SPA)和响应式Web应用程序。 Angular的主要特点包括: 1. 组件化架构:Angular使用组件化架构来构建应用程序。每个组件都有自己的模板、样式和逻辑,并可以嵌套在其他组件中,以构建复杂的用户界面。 2. 双向数据绑定:Angular支持双向数据绑定,使得数据的变化可以自动反映在视图中,同时用户的输入也可以自动更新数据模型。 3. 依赖注入:Angular使用依赖注入来管理组件之间的依赖关系。这样可以更好地组织和测试代码,并提高代码的可维护性和可扩展性。 4. 路由和导航:Angular提供了强大的路由和导航功能,可以实现页面之间的无缝切换和导航。 5. 响应式表单:Angular提供了响应式表单功能,可以轻松地处理表单的验证、状态管理和用户输入。 6. 强大的工具集:Angular配备了丰富的工具集,包括开发者工具、测试工具和构建工具,可以提高开发效率和代码质量。 下面是一个简单的Angular组件的示例: ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-hello', template: ` <h1>Hello, {{ name }}!</h1> <button (click)="changeName()">Change Name</button> `, }) export class HelloComponent { name = 'Angular'; changeName() { this.name = 'World'; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值