vue实现键盘输入支付密码功能


Posted in Javascript onAugust 18, 2018

本文实例为大家分享了vue实现键盘输入支付密码功能的具体代码,供大家参考,具体内容如下

支付密码功能界面如下图:

vue实现键盘输入支付密码功能

主要代码如下:

<template>
 <div class="pay-tool">
  <div class="pay-tool-title border-bottom">
   <span class="icon icon-back" @click="backHandle"></span><strong>请输入交易密码</strong>
  </div>
  <div class="pay-tool-content">
   <div class="pay-tool-inputs">
    <div class="item" v-for="i in items"><span class="icon_dot" v-if="password[i]"></span></div>
   </div>
   <div class="pay-tool-link"><router-link class="link" to="/getP">忘记密码?</router-link></div>
  </div>
  <div class="pay-tool-keyboard">
   <ul>
    <li @click="keyUpHandle($event)" v-for="val in keys">
     {{ val }}
    </li>
    <li class="del" @click="delHandle"><span class="icon-del"><</span></li>
   </ul>
  </div>
 </div>
</template>

<script>
 const keys = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, '', 0]
 // let sendFlag = true // 防止重复发送密码
 export default {
  data () {
   return {
    items: [0, 1, 2, 3, 4, 5],
    keys: keys(),
    password: []
   }
  },
  methods: {
   backHandle () {
    this.clearPasswordHandle() // 返回时清除password
    this.$emit('backFnc') // 返回上级
   },
   keyUpHandle (e) {
    let text = e.currentTarget.innerText
    let len = this.password.length
    if (!text || len >= 6) return
    this.password.push(text)
    this.ajaxData()
   },
   delHandle () {
    if (this.password.length <= 0) return false
    this.password.shift()
   },
   ajaxData () {
    if (this.password.length >= 6) {
     console.log(parseInt(this.password.join(' ').replace(/\s/g, '')))
    }
    return false
   },
   clearPasswordHandle: function () {
    this.password = []
   }
  }
 }
</script>

<style lang="less" scoped>
 .pay-tool {
  position: relative;
  height: 18.93333333rem;
  background-color: #fff;
  overflow: hidden;
  &-title {
   width: 100%;
   height: 2.08888888rem;
   padding: 0 0.8rem;
   line-height: 2.08888888rem;
   text-align: center;
   overflow: hidden;
   .icon {
    float: left;
    margin-top: 0.72222222rem;
   }
   strong {
    font-size: 0.8rem;
   }
  }
  &-content {
   .pay-tool-inputs {
    width: 14.46666666rem;
    height: 2.31111111rem;
    margin: 1.28888888rem auto 0;
    border: 1px solid #b9b9b9;
    border-radius: 0.26666666rem;
    box-shadow: 0 0 1px #e6e6e6;
    display: flex;
    .item {
     width: 16.66666666%;
     height: 2.31111111rem;
     border-right: 1px solid #b9b9b9;
     line-height: 2.31111111rem;
     text-align: center;
     &:last-child {
      border-right: none;
     }
     .icon_dot {
      display: inline-block;
      width: 0.51111111rem;
      height: 0.51111111rem;
      background: url("../../assets/images/icon_dot.png") no-repeat;
      background-size: cover;
     }
    }
   }
   .pay-tool-link {
    padding: 0.53333333rem 0.8rem 0;
    text-align: right;
    .link {
     font-size: 0.66666666rem;
     color: #3c8cfb;
    }
   }
  }
  .pay-tool-keyboard {
   position: absolute;
   left: 0;
   bottom: 0;
   width: 100%;
   ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    li {
     width: 33.3333%;
     height: 2.25442834rem;
     line-height: 2.25442834rem;
     text-align: center;
     border-right: 1px solid #aeaeae;
     border-bottom: 1px solid #aeaeae;
     font-size: 0.8rem;
     font-weight: bold;
     &:nth-child(1), &:nth-child(2), &:nth-child(3) {
      border-top: 1px solid #eee;
     }
     &:nth-child(3), &:nth-child(6), &:nth-child(9), &:nth-child(12) {
      border-right: none;
     }
     &:nth-child(10), &:nth-child(11), &:nth-child(12) {
      border-bottom: none;
     }
     &:nth-child(10), &:nth-child(12), &:active {
      background-color: #d1d4dd;
     }
     &:nth-child(12):active {
      background-color: #fff;
     }
    }
   }
  }
 }
</style>

注意:页面使用rem布局,根html的font-size为45px。

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

Javascript 相关文章推荐
js继承 Base类的源码解析
Dec 30 Javascript
匹配任意字符的正则表达式写法
Apr 29 Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
jquery png 透明解决方案(推荐)
Aug 21 Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 Javascript
一个JavaScript去除字符串末尾的空白实例代码
Sep 22 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
vue安装和使用scss及sass与scss的区别详解
Oct 15 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 #Javascript
Vue实现6位数密码效果
Aug 18 #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
You might like
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
React Native react-navigation 导航使用详解
2017/12/01 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
python实现移位加密和解密
2019/03/22 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
python 19个值得学习的编程技巧
2020/08/15 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
汽修专业学生自我鉴定
2013/11/16 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
记帐员岗位责任制
2014/02/08 职场文书
毕业证代领委托书
2014/09/26 职场文书
暑期社会实践证明书
2014/11/17 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Python中else的三种使用场景
2021/06/16 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android