最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue实现6位数密码效果

来源:动视网 责编:小采 时间:2020-11-27 22:09:41
文档

Vue实现6位数密码效果

Vue实现6位数密码效果:在ios系统,原生 webview 嵌套H5页面使用时,编写完成的6位数输入密码,输入密码卡顿问题的解决方案: 如下图: 原因是因为,CSS 这块 造成的。简单来说,style left 为负数的时候出现的,android 目测不会出现此问题 input[type=tel] {
推荐度:
导读Vue实现6位数密码效果:在ios系统,原生 webview 嵌套H5页面使用时,编写完成的6位数输入密码,输入密码卡顿问题的解决方案: 如下图: 原因是因为,CSS 这块 造成的。简单来说,style left 为负数的时候出现的,android 目测不会出现此问题 input[type=tel] {


在ios系统,原生 webview 嵌套H5页面使用时,编写完成的6位数输入密码,输入密码卡顿问题的解决方案:

如下图:

原因是因为,CSS 这块 造成的。简单来说,style left 为负数的时候出现的,android 目测不会出现此问题

input[type=tel] {
 opacity: 0;
 z-index: -1;
 position: absolute;
 left:-100%;
}

解决方案:

重新设置 input样式问题

input[type=tel] {
 width: 0.1px;
 height: 0.1px;
 color: transparent;
 position: relative;
 top: 23px;
 background: #000000;
 left: 46px;
 border: none;
 font-size: 18px;
 opacity: 0;
 z-index: -1;
}

全部代码在这,你可以拿出去使用即可

<template>
 <div id="payPwd">
 <header>支付密码设置</header>
 <input ref="pwd" type="tel" maxlength="6" v-model="msg" class="pwd" unselectable="on" />
 <ul class="pwd-wrap" @click="focus">
 <li :class="msg.length == 0?'psd-blink':''"><i v-if="msg.length > 0"></i></li>
 <li :class="msg.length == 1?'psd-blink':''"><i v-if="msg.length > 1"></i></li>
 <li :class="msg.length == 2?'psd-blink':''"><i v-if="msg.length > 2"></i></li>
 <li :class="msg.length == 3?'psd-blink':''"><i v-if="msg.length > 3"></i></li>
 <li :class="msg.length == 4?'psd-blink':''"><i v-if="msg.length > 4"></i></li>
 <li :class="msg.length == 5?'psd-blink':''"><i v-if="msg.length > 5"></i></li>
 </ul>
 <button type="button" @click="sendCode">获取验证码 lodding</button>
 </div>
</template>
<script>
 import api from "./api";
 import "@/js/utils"; //公共方法
 export default {
 components: {},
 data() {
 return {
 msg: '',
 }
 },
 created() {},
 computed: {},
 watch: {
 msg(curVal) {
 if(/[^\d]/g.test(curVal)) {
 this.msg = this.msg.replace(/[^\d]/g, '');
 }
 },
 },
 methods: {
 focus() {
 this.$refs.pwd.focus();
 },
 sendCode() {
 //时间
 utils.sendCode(event.target);

 //showLoading
 utils.view.showLoading();

 setTimeout(function() {
 utils.view.dismissLoading();
 }, 5000);
 }
 },
 mounted() {}
 }
</script>
<style lang="less" scoped>
 #payPwd {
 height: auto;
 header {
 text-align: center;
 height: 80px;
 line-height: 90px;
 text-align: center;
 }
 input[type=tel] {
 width: 0.1px;
 height: 0.1px;
 color: transparent;
 position: relative;
 top: 23px;
 background: #000000;
 left: 46px;
 border: none;
 font-size: 18px;
 opacity: 0;
 z-index: -1;
 }
 //光标
 .psd-blink {
 display: inline-block;
 background: url("./img/blink.gif") no-repeat center;
 }
 .pwd-wrap {
 width: 90%;
 height: 50px;
 padding-bottom: 1px;
 margin: 0 auto;
 background: #fff;
 border: 1px solid #ddd;
 display: flex;
 display: -webkit-box;
 display: -webkit-flex;
 cursor: pointer;
 position: absolute;
 left: 0;
 right: 0;
 top: 13%;
 z-index: 10;
 li {
 list-style-type: none;
 text-align: center;
 line-height: 50px;
 -webkit-box-flex: 1;
 flex: 1;
 -webkit-flex: 1;
 border-right: 1px solid #ddd;
 &:last-child {
 border-right: 0;
 }
 i {
 height: 10px;
 width: 10px;
 border-radius: 50%;
 background: #000;
 display: inline-block;
 }
 }
 }
 button {
 position: relative;
 display: block;
 height: 41px;
 text-align: center;
 margin: 0 auto;
 margin-top: 70%;
 padding: 0 20px;
 border-radius: 5px;
 font-size: 16px;
 border: 1px solid #dddddd;
 background: #dddddd;
 color: #000000;
 }
 }
</style>

附加:如果不想使用光标,直接

//去掉 :class="msg.length == 0?'psd-blink':''" 即可
<li><i v-if="msg.length > 0"></i></li>

文档

Vue实现6位数密码效果

Vue实现6位数密码效果:在ios系统,原生 webview 嵌套H5页面使用时,编写完成的6位数输入密码,输入密码卡顿问题的解决方案: 如下图: 原因是因为,CSS 这块 造成的。简单来说,style left 为负数的时候出现的,android 目测不会出现此问题 input[type=tel] {
推荐度:
标签: 密码 VUE 效果实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top