vue实现移动端H5数字键盘组件使用详解


Posted in Javascript onAugust 25, 2020

本文实例为大家分享了vue实现移动端H5数字键盘组件的使用代码,供大家参考,具体内容如下

我们平时扫码付款的时候,经常会输入一些数字进行付款,仔细看了下键盘和系统的键盘有点不一样,于是今天买甘蔗的时候扫码付款就想了一下要怎么去实现一个。话不多说,直接上代码。

结果如下:

vue实现移动端H5数字键盘组件使用详解

代码如下:

<template>
 <div class="keyboard-wrapper">
 <input type="text" v-model="NUM" @focus="show = true" onfocus="this.blur()"/>
 <div class="keyboard" v-if="show">
 <div class="num">
 <table>
  <tr>
  <td @click="change(1)" :class="[active === 1 ? 'active' : '']" @touchstart="msDown(1)" @touchend="msUp(1)">1</td>
  <td @click="change(2)" :class="[active === 2 ? 'active' : '']" @touchstart="msDown(2)" @touchend="msUp(2)">2</td>
  <td @click="change(3)" :class="[active === 3 ? 'active' : '']" @touchstart="msDown(3)" @touchend="msUp(3)">3</td>
  <td rowspan="2" class="del" @click="del">×</td>
  </tr>
  <tr>
  <td @click="change(4)" :class="[active === 4 ? 'active' : '']" @touchstart="msDown(4)" @touchend="msUp(4)">4</td>
  <td @click="change(5)" :class="[active === 5 ? 'active' : '']" @touchstart="msDown(5)" @touchend="msUp(5)">5</td>
  <td @click="change(6)" :class="[active === 6 ? 'active' : '']" @touchstart="msDown(6)" @touchend="msUp(6)">6</td>
  </tr>
  <tr>
  <td @click="change(7)" :class="[active === 7 ? 'active' : '']" @touchstart="msDown(7)" @touchend="msUp(7)">7</td>
  <td @click="change(8)" :class="[active === 8 ? 'active' : '']" @touchstart="msDown(8)" @touchend="msUp(8)">8</td>
  <td @click="change(9)" :class="[active === 9 ? 'active' : '']" @touchstart="msDown(9)" @touchend="msUp(9)">9</td>
  <td rowspan="2" class="comfirm" @click="comfirm">确定</td>
  </tr>
  <tr>
  <td colspan="2" @click="change(0)" :class="[active === 0 ? 'active' : '']" @touchstart="msDown(0)" @touchend="msUp(0)">0</td>
  <td colspan="1" @click="change('.')" :class="[active === '.' ? 'active' : '']" @touchstart="msDown('.')" @touchend="msUp('.')">.</td>
  </tr>
 </table>
 </div>
 </div>
 </div>
</template>
 
<script>
 
export default {
 name: 'App',
 data () {
 return {
 active: null,
 show: false,
 NUM: '',
 result: []
 };
 },
 computed: {
 // 统计打中的地鼠数量
 num: function () {
 return this.result.join('');
 }
 },
 created () {
 },
 mounted () {
 },
 methods: {
 msDown (v) {
 this.active = v;
 },
 msUp (v) {
 this.active = '';
 },
 stopInput () {
 return false;
 },
 change (val, $event) {
 if (this.result.length === 0 && val === '.') {
 return false;
 } else {
 this.result.push(val);
 this.NUM = this.result.join('');
 }
 },
 del () {
 this.result.pop();
 this.NUM = this.result.join('');
 this.$emit('del', this.NUM);
 },
 comfirm () {
 this.$emit('comfirm', this.NUM);
 this.show = false;
 }
 }
};
</script>
<style lang="less" scoped>
.keyboard-wrapper {
 user-select: none;
 input {
 width:100%;
 height:50px;
 font-size:25px;
 }
 .keyboard {
 position: fixed;
 bottom: 0;
 width: 100%;
 .num {
 table {
 width: 100%;
 border: 1px solid #ccc;
 border-collapse: collapse;
 background: #fff;
 td {
  height: 50px;
  vertical-align: middle;
  color: #333;
  font-size: 20px;
  border: 1px solid #ccc;
  text-align: center;
 }
 td.active{
  background:#ccc;
 }
 .del {
  background: #eee;
 }
 .comfirm {
  font-size: 16px;
  width: 80px;
  background: #118eeb;
  color: #fff;
 }
 }
 }
 }
}
</style>

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

Javascript 相关文章推荐
初试jQuery EasyUI 使用介绍
Apr 01 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
jquery序列化表单去除指定元素示例代码
Apr 10 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
详解微信小程序开发之城市选择器 城市切换
Jan 17 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 Javascript
vue使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 #Javascript
js实现页面导航层级指示效果
Aug 25 #Javascript
js实现拖拽元素选择和删除
Aug 25 #Javascript
基于vue实现简易打地鼠游戏
Aug 21 #Javascript
vue实现打地鼠小游戏
Aug 21 #Javascript
js实现滑动进度条效果
Aug 21 #Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 #Javascript
You might like
phpwind中的数据库操作类
2007/01/02 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
RC4文件加密的python实现方法
2015/06/30 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python tkinter模版代码实例
2020/02/05 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
通过代码实例了解Python sys模块
2020/09/14 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
优秀党员先进材料
2014/12/18 职场文书
诚信承诺书
2015/01/19 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
带你了解Java中的ForkJoin
2022/04/28 Java/Android
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS