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 (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
JS倒计时代码汇总
Nov 25 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
jquery实现左右无缝轮播图
Jul 31 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
Mar 29 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
Dec 06 Javascript
vue 之 css module的使用方法
Dec 04 Javascript
JavaScript实现刮刮乐效果
Nov 01 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抓取页面与代码解析 推荐
2010/07/23 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
javascript生成大小写字母
2015/07/03 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
Python基于动态规划算法计算单词距离
2015/07/25 Python
深入学习python的yield和generator
2016/03/10 Python
python 网络编程详解及简单实例
2017/04/25 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
python区块及区块链的开发详解
2019/07/03 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
手术室护士自我鉴定
2013/10/14 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
谢师宴学生致辞
2015/07/27 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript
Mysql如何查看是否使用到索引
2022/12/24 MySQL