本文介绍了Vue Components 数字键盘的实现,分享给大家,具体如下:
项目地址 点击查看
项目演示 点击查看
首先监听所有的input,有input聚焦时调起数字键盘,通过getBoundingClientRect判断input位置让数字键盘在input附近,失去焦点后则隐藏数字键盘
let inputElement = document.getElementsByTagName("input"); [...inputElement].forEach(ipele => { ipele.addEventListener("focus", function(e) { $this.inputTarget = e.target; let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; let scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft; $this.NumberkeyBoardStyle = "top:" + (e.target.getBoundingClientRect().top + scrollTop + e.target.offsetHeight) + "px;left:" + (e.target.getBoundingClientRect().left + scrollLeft + e.target.offsetWidth) + "px"; }); ipele.addEventListener("blur", function(e) { $this.inputTarget = null; $this.NumberkeyBoardStyle = "display:none"; }); });
点击小键盘时阻止默认事件,阻止input失去焦点。
BoardNumberKeyDown(e) { if (e && e.preventDefault) { e.preventDefault(); } else { window.event.returnValue = false; return false; } },
点击小键盘时,根据事件委托,得出点击的数字,然后根据selectionStart,selectionEnd获取input中的焦点,将小键盘中的数字插入焦点处,最后焦点右移一位。
let inputTarget = this.inputTarget; let Pointstart = inputTarget.selectionStart; let PointEnd = inputTarget.selectionEnd; let wordLength = inputTarget.value.length; if (e.target.className == "numberTD" && e.target.innerText != "←") { inputTarget.value = inputTarget.value.slice(0, Pointstart) + e.target.innerText + inputTarget.value.slice(PointEnd, wordLength); //一个小数点和开头不能有小数点 inputTarget.value = inputTarget.value.replace(/^\./g, ""); inputTarget.value = inputTarget.value .replace(".", "$#$") .replace(/\./g, "") .replace("$#$", "."); inputTarget.selectionStart = Pointstart + 1; inputTarget.selectionEnd = Pointstart + 1; //让光标显示在input可视区域 inputTarget.blur(); inputTarget.focus();
点击删除键时,删除光标处数字,最后光标右移。
if (e.target.className == "numberTD" && e.target.innerText == "←" && //PointEnd==0时会复制整个input的value PointEnd != 0 ) { inputTarget.value = inputTarget.value.slice(0, Pointstart - 1) + inputTarget.value.slice(PointEnd, wordLength); inputTarget.selectionStart = Pointstart - 1; inputTarget.selectionEnd = Pointstart - 1; //让光标显示在input可视区域 inputTarget.blur(); inputTarget.focus(); }
在删除数字和添加数字后要让input失去焦点在获取焦点,不然光标会在最后而不是在input的可视区域,这样子会看不到输入的值,具体可以查看项目。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
介绍 虚拟数字键盘,可以配合密码输入框组件或自定义的输入框组件使用。 引入 import { createApp } from 'vue'; import { NumberKeyboard } from 'vant'; const app = createApp(); app.use(NumberKeyboard); 代码演示 默认样式 数字键盘提供了 input、delete、blur 事件
使用指南 组件介绍 数字键盘组件 引入方式 import { KeyBoard } from 'feart'; export default { components: { 'fe-key-board': KeyBoard, }, data() { return { keyboard: '' }; }, methods: { hid
输入数字时,会发出相应人声朗读数字。 作者说:自定义键盘不是原创,只是本人将语音功能添加上去了,可以给需要的朋友,点击相应的数字会发出相应的人声,可以关闭语音。 [Code4App.com]
在系统数字键盘的左下角添加自定义按钮。在ios7之前可以通过监听UIKeyboardDidShowNotification,然后把自定义按钮贴在键盘上,会跟键盘一起弹出。但是这种实现方法在 iOS7 的效果则变成:键盘弹出,接着突然加上按钮,无法达到原先的效果。这份代码中,开发者实现了一个高仿系统自定义的数字键盘,左下角的ABC键可切换回系统键盘。
本文向大家介绍Android 仿微信自定义数字键盘的实现代码,包括了Android 仿微信自定义数字键盘的实现代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Android 仿微信自定义数字键盘的实现代码,分享给大家,希望对大家有帮助 最终效果: 实现这个自定义键盘的思路很简单: 要写出一个数字键盘的布局; 与 Edittext 结合使用,对每个按键的点击事件进行处理; 禁用系统软键盘。
本文向大家介绍javascript实现捕捉键盘上按下的键,包括了javascript实现捕捉键盘上按下的键的使用技巧和注意事项,需要的朋友参考一下 小小的demo,用js捕捉键盘盘上按下了那个键,然后展示出对应的code值 以上所述就是本文的全部内容了,希望大家能够喜欢。