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 相关文章推荐
JavaScript中用字面量创建对象介绍
Dec 31 Javascript
jquery实现仿新浪微博评论滚动效果
Aug 06 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
jquery自定义插件——window的实现【示例代码】
May 06 Javascript
Angular2内置指令NgFor和NgIf详解
Aug 03 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
Sep 04 Javascript
jQuery简单创建节点的方法
Sep 09 Javascript
利用HBuilder打包前端开发webapp为apk的方法
Nov 13 Javascript
小程序实现多选框功能
Oct 30 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
Apr 09 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 Javascript
js实现网页随机验证码
Oct 19 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
终于听上了直流胆调频
2021/03/02 无线电
用PHP实现验证码功能
2006/10/09 PHP
php入门小知识
2008/03/24 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
Symfony控制层深入详解
2016/03/17 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
从0开始学Vue
2016/10/27 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
详解vue-router导航守卫
2019/01/19 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
教师校本培训方案
2014/02/26 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
python字符串常规操作大全
2021/05/02 Python
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android