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 cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
原生js写的放大镜效果
Aug 22 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
AngularJS学习第二篇 AngularJS依赖注入
Feb 13 Javascript
AngularJS实现tab选项卡的方法详解
Jul 05 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
如何用Node.js编写内存效率高的应用程序
Apr 30 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
7个超级实用的PHP代码片段
2011/07/11 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
玩转方法:call和apply
2014/05/08 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
python matplotlib画图实例代码分享
2017/12/27 Python
Python高级用法总结
2018/05/26 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python 实现多线程下载视频的代码
2019/11/15 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
装潢设计专业推荐信模板
2013/11/26 职场文书
农场厂长岗位职责
2013/12/28 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
大学生就业策划书范文
2014/04/04 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
公务员年度考核评语
2014/12/31 职场文书