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 相关文章推荐
JS删除数组元素的函数介绍
Mar 27 Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 Javascript
判断客户浏览器是否支持cookie的示例代码
Dec 23 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
JS锚点的设置与使用方法
Sep 05 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 Javascript
详解webpack模块化管理和打包工具
Apr 21 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 Javascript
原生JavaScript实现进度条
Feb 19 Javascript
探究一道价值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
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python打印输出数组中全部元素
2018/03/13 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
重阳节登山活动方案
2014/02/03 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
物业管理工作方案
2014/05/10 职场文书
小学校长汇报材料
2014/08/20 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript