叹!

2020 7 28~ 晴 31℃

2020年~活着就是一种幸福~

人生磕磕绊绊20+,前途一片迷茫!年纪大了学习感觉有心无力!随着“鼠年”疫情影响,公司动荡不安,个人动力也仿佛被掏空......

正题!个人外包项目,微信小程序自定义数字键盘!能用,还没详细优化!

数字键盘应用场景

甲方:XX在线吗?你这个数字填写的部分应用的场景能不能不用input,弹出手机键盘很烦啊~挡住下面元素了,用户体验感很不好~

乙方:心里一万头“XXXX”飘过~~~咋搞呢?

甲方:能不能想我H5一样,小程序端也做成自定义的数字键盘(截图飘过来~~)

乙方:哦,好吧!

数字键盘效果

封装

1、mykeyboard.js

// pages/mykeyboard/mykeyboard.js
var app = getApp();
let arrval = [];
let number = '';
Component({externalClasses: ['mykeyboard'],//对外引用资源properties: {//显示键盘isShow: {type: Boolean,value: false,},//键盘按压背景颜色keyBoradBackground:{type:String,value:"#2DA2F1"},//键盘边角大小bordradius:{type:String,value:"5px",},},// 数据集data: {keynumber: '123456789.0X',canclebt: '取消',submitbt: '确定',deletebt: '删除',numberval: [],numbertext: '',},//方法函数methods: {keyboadrTap: function (e) {// console.log(e)let val = e.target.dataset.value; //获取data-vaule值switch (val) {case 'delete':// console.log('删除')arrval.pop();this.setData({numberval: arrval,numbertext: arrval.join(''),})this.triggerEvent('delete');break;case 'cancle':this.triggerEvent('cancle');// console.log('退出')//退出置空键盘数据集arrval = [];this.setData({numbertext:"",})break;case 'submit':// console.log('提交')// console.log(this.data.numbertext);//数字为空不允许点击确定按钮if(this.data.numbertext == ""){wx.showToast({title: '数据为空',})return true;}//正则判断this.triggerEvent('submit',this.data.numbertext);arrval = [];this.setData({numbertext:"",})break;default:// console.log('数字键盘');// console.log(val); arrval.push(val);var arr =  arrval.join('').replace(/^\./g, "").replace(".","#").replace(/\./g,"").replace("#",".").replace("X","*").replace(/\X/g,"").replace("*","x");this.setData({numberval: arrval,numbertext: arr,})this.triggerEvent('inputChange', this.data.numbertext);}},},
});

2、mykeyboard.json

{"component":true,"usingComponents": {}
}

3、mykeyboard.wxml

<view class="keyboard_cotainer" hidden="{{isShow}}"><view class="numval">{{numbertext}} </view><view class="keyboard_num" hover-class="keyboard_click" wx:for="{{keynumber}}" bindtap="keyboadrTap" wx:key="index" data-value="{{item}}" style="border-radius:{{bordradius}}; ">{{item}} </view><view class="deletebt" hover-class="bt_select" bindtap="keyboadrTap" data-value="delete" >{{deletebt}}</view><view class="canclebt" hover-class="bt_select" bindtap="keyboadrTap" data-value="cancle" >{{canclebt}}</view><view class="submitbt" hover-class="bt_select" bindtap="keyboadrTap" data-value="submit" >{{submitbt}}</view>
</view>

4、mykeyboard.wxss


.keyboard_cotainer{position: absolute;bottom: 0px;height: auto;width: 100%;background: rgba(158, 157, 157, 0.466);align-items: center;justify-content: center;
}
.numval{border-radius:5px;margin-bottom: .5px;text-align: center;line-height: 50px;font-weight: 700;height: 50px;width: 100%;background: #fff;font-size: 16px;color: #226bda;
}.keyboard_num{line-height: 50px;margin: .5px;float: left;color: black;font-size: 16px;font-weight: 700;width: 33%;height: 50px;background: #fff;border-radius:5px;text-align: center;
}
/* 点击选中样式 */
.keyboard_click{line-height: 50px;margin: .5px;float: left;color: black;font-size: 16px;font-weight: 300;width: 33%;height: 50px;background: #dddddd;border-radius:5px;text-align: center;
}
.deletebt{border-radius:5px;margin: .5px;color: #fff;font-size: 12px;text-align: center;line-height: 40px;float: left;width: 33%;height: 40px;background: #aaa8a8;
}
.canclebt{border-radius:5px;margin: .5px;color: #fff;font-size: 12px;text-align: center;line-height: 40px;float: left;width: 33%;height: 40px;background: #e98c8c;
}
.submitbt{border-radius:5px;margin: .5px;color: #fff;font-size: 12px;text-align: center;line-height: 40px;float: left;width: 33%;height: 40px;background: #226bda;
}
.bt_select{border-radius:5px;color: #fff;margin: .5px;font-size: 12px;text-align: center;line-height: 40px;float: left;width: 33%;height: 40px;background: rgb(51, 165, 241);
}

如何调用

在需要的用的地方使用:

1、xxxxxx.json 文件中引入

 "component": true,"usingComponents": {"mykeyboard": "../../../../components//mykeyboard/mykeyboard"},

2、xxxxxx.wxml 文件中引入

<!-- 自定义键盘  class为遮罩层-->
<view class="zhezhao" hidden="{{showkeyborad}}"><mykeyboard is-show="{{showkeyborad}}" bindcancle="boardcancle" bindsubmit="boardsubmit" bindinputchange="boardchange" />
</view>

3、xxxxxx.wxss 文件也放出来吧!就一遮罩,自己可以将其封装在自定义的wxss中!

.zhezhao {position: fixed;width: 100%;height: 100%;top: 0px;background: rgba(0, 0, 0, 0.4);overflow: hidden;
}

4、重点是js层调用  xxxxxx.js

data:{}中引入属性,控制键盘隐藏和弹出

  data: {//键盘显示 和隐藏  true是hidden  false是显示showkeyborad: true, },

方法调用:

inputval 是确认按钮后回调的值  这个值自己引入到对应的位置赋值即可

//自定义键盘函数  取消按钮boardcancle: function (e) {this.setData({showkeyborad: true,})},//自定义键盘函数  确定按钮boardsubmit: function (e) {console.log(e)var inputval = e.detail;this.setData({showkeyborad: true,})//inputval 是确认按钮后回调的值  这个值自己引入到对应的位置赋值即可},

以上,有问题可以留言!

微信小程序 自定义控件 数字键盘相关推荐

  1. android 支付数字键盘,微信小程序自定义数字键盘|仿支付宝、微信支付数字软键盘...

    (此图片来源于网络,如有侵权,请联系删除! ) 前几天有开发过一个html5仿支付宝.微信支付数字键盘,在某些特定场景下自定义数字键盘应用还是蛮广泛的,比如 小程序商城系统 需要零钱支付 ,会员卡支付 ...

  2. 微信小程序:调取数字键盘,没有小数点的解决办法

    通常来说:input框有type这个属性,我们通常使用text.number .checkbox等这些常用的type值来限制输入框的输入. 在微信小程序中,当我们的输入框的type值为number的时 ...

  3. 小程序自定义数字键盘|仿微信支付、支付宝支付密码键盘

    微信小程序自定义键盘插件wcKeyboard|仿微信数字软键盘|仿支付宝自定义数字键盘|小程序自定义模拟系统键盘 前段时间有开发过一个html5仿支付宝.微信支付数字键盘,在某些情况下自定义数字键盘应 ...

  4. 微信小程序 textarea浮动键盘弹不出来错误

    参考网址:https://www.shangmayuan.com/a/e8923d8f81c04fe6983f8eff.html 微信小程序textarea组件问题: 部分用户使用悬浮键盘时,会弹不出 ...

  5. 微软收购暴雪计划遭拒/ Edge被曝泄露浏览记录/ 微信小程序可用数字人民币...今日更多新鲜事在此...

    日报君 发自 凹非寺 量子位 | 公众号 QbitAI 大家好,今天是4月27日星期四,是这个月倒数第二天上班了~ 在假期可以翘首以待的日子里,还是来和日报君看看今天的科技圈资讯吧~ 微信支持数字人民 ...

  6. 微信小程序的数字有部分会自动加粗的解决方法

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: bug图: 能看到,0和1是一个标签里面的,但是不统一显示 此时的代码: <view>20 ...

  7. 微信小程序----MUI数字输入框

    效果体验二维码 如果文章对你有帮助的话,请打开微信扫一下二维码,点击一下广告,支持一下作者!谢谢! DEMO下载 效果图 WXML <view class="tui-content&q ...

  8. 微信小程序之解决键盘与页面scroll-view问题

    场景介绍: 在编写小程序类似微信聊天页面时,常常遇到这样情况: a/ 键盘弹出或收起时,聊天消息没有自动滚到最底部. b/ 点击输入框弹出软键盘后,遮盖部分聊天内容. 解决方式: 一,解决问题a 将聊 ...

  9. 《微信小程序-比较数字大小》

    1.创建一个新的项目,点击菜单栏的项目->创建所有项目->点击"+"号->APPID如果已经注册并使用过直接点击测试号即可->选择不适用云服务->开发 ...

  10. 微信小程序 《数字华容道》

    简单的做了个数字华容道的小游戏,大概长这样 页面有点简单,但是大概的功能应该差不多都有了. 这个小游戏的难点主要有两个: ① 如何移动? // 移动算法 isPass: false, // 是否通关 ...

最新文章

  1. Docker建网站 4条命令搞定
  2. 根据Word表格自动生成SQL数据库脚本的VBScript代码
  3. C/C++协程库libco:微信怎样漂亮地完成异步化改造
  4. 服务器操作系统2008安装图解,IBM服务器windows2008操作系统安装步骤图文(13页)-原创力文档...
  5. nyoj1057寻找最大数3
  6. java inputtools_Java后台开发常用工具类
  7. 关于计算机的使用方法中心,关于新校区行政楼和活动中心楼网络使用的说明
  8. linux追加内核参数,Linux设置内核参数的方法
  9. L2-005 集合相似度 (25分)
  10. rserve php,使用Rserve远程执行R脚本
  11. Hibernate Session get()vs load()实例差异
  12. 为什么c语言程序exe无法运行程序,这个程序怎么运行?为什么显示没有exe??...
  13. java excel导出(基于注解)
  14. python和java那个更难_python难还是java难
  15. 3dmax推荐用哪个版本,主流好用的版本有哪些?
  16. vue-app之H5打开第三方app
  17. 包邮送5本!新书推荐:MLOps实践――机器学习从开发到生产
  18. .NET Framework 4 安装未成功 一般信任关系失败
  19. 台式计算机usb口不识别鼠标,如何解决插入鼠标提示无法识别USB设备的问题
  20. Cannot find SourceMap 'XXX.js.map'问题解决

热门文章

  1. Learning from Very Few Samples:小样本学习综述(三)
  2. linux查看统计数据命令,查看,统计、正则表达式――Linux基本命令(9)
  3. linux主机做racl,linux学习日记十一 账号管理与ACL权限设置
  4. C语言输入Aa1Bb2Cc3,C语言shuzu_test.doc
  5. 2020 蓝桥杯大学模拟赛(三) - 程序设计:养猫题解
  6. web网页添加天气插件(心知天气)
  7. matlab拟合度R方,...1),问题是什么是拟合优度?、R^2大于多少说明拟合度很好,R^2在...-拟合度-数学-冀群是同学...
  8. 【LeetCode刷题】Greedy贪心算法笔记
  9. ubuntu服务器设置定时自动开关机
  10. 【其他】计蒜客 ICPC Pacific Northwest Regional Contest 2017 Gym-101652X Star Arrangements