vue,一路走来(14)--短信验证码框的实现(类似支付密码框)

由于项目的扩展,新增了很多功能,今天谈一下短信验证码框的实现。

思路:每个小方框其实就是单独的每一个input标签(叫假input标签),每个长度为1,然后上面再写一个大的input标签(叫真实input标签),提高层级定位在上方,最大长度为6,然后将上方真实input标签的值传给每一个单独的假input标签。

<div class="phonenum-show">
     <div class="getback-title">收回剩余礼金 
<span @click="getbackMoneyclock()"><img src="../assets/getback.png" alt=""></span>
</div> <div class="write-phonenum"> <p>请输入尾号<span>9909</span>的手机收到的短信验证码</p> <input type="tel" maxlength="6" class="realInput" v-model="realInput" @keyup="getNum()" @keydown="delNum()" id="focusid"> <ul class="write-input clearfix"> <li v-for="disInput in disInputs"><input type="tel" maxlength="1" v-model="disInput.value"></li> </ul> <mt-button size="large">我明白了 确认提交</mt-button> <p>剩余礼金将收回至微信“零钱包”请注意查收。</p> <p style="color:#bfc0c0;">活动结束24小时后可申请收回剩余的礼金。</p> </div> </div>
.phonenum-show{padding:10px;background: #fff;}
.getback-title{padding-bottom:10px;border-bottom: 1px solid #dddddd;position: relative;font-size: 14px;margin-bottom: 10px;}
.getback-title span{position: absolute;right:0;top:3px;width:15px;height:15px;display: inline-block;}
.write-phonenum p{text-align: center;font-size: 12px;}
.write-phonenum p span{color: #3b90d1;}
.write-input {border:1px solid #888888;width:186px;margin:10px auto;}
.write-input li{float: left;width:30px;height: 30px;border-right:1px solid #ddd;}
.write-input li input{-webkit-appearance: none;-moz-appearance: none;-ms-appearance: none;resize: none;outline: none;border:0;width:30px;line-height: 30px;text-align: center;height: 30px;font-size:16px;}
.write-input li:last-child{border-right: none;}
.write-phonenum .mint-button--default{background: #3b90d1;color:#fff;font-family: "微软雅黑";font-size: 14px;width:80%;margin:10px auto;}
.realInput{-webkit-appearance: none;-moz-appearance: none;-ms-appearance: none;resize: none;outline: none;border:0;z-index: 1;position: absolute;width:186px;height: 32px;line-height: 32px;background: none;display: block;left:50%;margin-left: -93px;top:76px;opacity: 0;font-size:0px;caret-color:#fff;color:#000;text-indent: -5em;}
/*影藏input标签*/
input[type
="tel" i]:disabled{background-color: #fff;}
export default {
  name: 'packetMessage',
    data(){
       return{
        messagepacket:false,
        packets:[
        
        ],
        disInputs:[{value:''},{value:''},{value:''},{value:''},{value:''},{value:''}],
        realInput:''
        
       }
    },
    methods:{
        getbackMoney(){
          this.messagepacket=true;
          var idObj = document.getElementById('focusid');
          idObj.focus(); 
//点击进来自动获取焦点 }, getbackMoneyclock(){
this.messagepacket=false }, getNum(){ for(var i=0;i<this.realInput.length;i++){ this.disInputs[i].value=this.realInput.charAt(i) // 表示字符串中某个位置的数字,即字符在字符串中的下标。 } }, delNum(){ var oEvent = window.event; if (oEvent.keyCode == 8) { if(this.realInput.length>0){ this.disInputs[this.realInput.length-1].value='' } } } }, components: {} }

 

转载于:https://www.cnblogs.com/juewuzhe/p/7872382.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 Relation Graph 是一个基于 Vue3 和 D3.js 的关系图谱组件库,可以用于展示和操作复杂的关系网络数据。它提供了丰富的功能和交互效果,其中包括实现线条悬浮的功能。 要实现线条悬浮,你可以按照以下步骤进行操作: 1. 安装依赖:首先,在你的 Vue 项目中安装 vue3-relation-graph 组件库。可以使用 npm 或者 yarn 进行安装。 2. 导入组件:在需要使用关系图谱的组件中,导入 vue3-relation-graph 组件。 ```javascript import { RelationGraph } from 'vue3-relation-graph'; ``` 3. 准备数据:准备好你的关系网络数据,包括节点和边的信息。可以根据你的需求,将数据存储在组件的 data 中或者从后端获取。 4. 使用组件:在模板中使用 RelationGraph 组件,并将准备好的数据传递给组件。 ```html <template> <RelationGraph :nodes="nodes" :edges="edges" /> </template> ``` 5. 自定义线条悬浮:通过配置 RelationGraph 组件的 props,你可以自定义线条悬浮的内容和样式。可以使用 slot 来自定义线条悬浮的内容。 ```html <template> <RelationGraph :nodes="nodes" :edges="edges"> <template #edge-tooltip="{ edge }"> <div class="tooltip"> <p>{{ edge.label }}</p> <p>{{ edge.weight }}</p> </div> </template> </RelationGraph> </template> ``` 在上面的例子中,我们使用了一个名为 `edge-tooltip` 的 slot 来自定义线条悬浮的内容。在这个 slot 中,我们可以访问到当前悬浮的边的信息,并根据需要进行展示。 这样,当用户将鼠标悬停在关系图谱的线条上时,就会显示自定义的线条悬浮

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值