Vue实现6位数密码效果


Posted in Javascript onAugust 18, 2018

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

如下图:

Vue实现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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript脚本调试方法小结
Nov 24 Javascript
Javascript 颜色渐变效果的实现代码
Oct 01 Javascript
jquery JSON的解析方式示例介绍
Jul 27 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
angularJS中router的使用指南
Feb 09 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
Jun 26 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
layui radio点击事件实现input显示和隐藏的例子
Sep 02 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 #Javascript
详解Angular6 热加载配置方案
Aug 18 #Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 #Javascript
vue下history模式刷新后404错误解决方法
Aug 18 #Javascript
详解javascript appendChild()的完整功能
Aug 18 #Javascript
vue中的自定义分页插件组件的示例
Aug 18 #Javascript
vue 自定义提示框(Toast)组件的实现代码
Aug 17 #Javascript
You might like
PHP 网页过期时间的控制代码
2009/06/29 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
Python用GET方法上传文件
2015/03/10 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
详解Python字典小结
2018/10/20 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
什么是java序列化,如何实现java序列化
2012/11/14 面试题
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
个人自我鉴定范文
2013/10/04 职场文书
工商管理专业应届生求职信
2013/11/04 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
主管竞聘书范文
2014/03/31 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
结婚保证书
2015/01/16 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
花木兰观后感
2015/06/10 职场文书
远程教育培训心得体会
2016/01/09 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python