虚拟数字键盘

虚拟数字键盘


背景

移动端的浏览器中,input元素的自动聚焦并弹起系统键盘很难做到统一,一是IOS系统下的浏览器,非真实的用户交互,是无法弹起系统键盘的,通过js模拟也不行。二是某些浏览器下,input的输入光标会没有,使得用户体验不佳。

目标

1、进入页面时就自动聚焦到input上,并弹出数字键盘。

2、input输入带光标

3、提供通用的配置入口

4、额外的校验逻辑,例如正确的金额格式校验

实现方案

1、虚拟的数字键盘

2、虚拟的input

使用方式

1、提供input容器

<div id='input_container'></div>

2、使用示例

/**`  
`* 确认按钮点击回调函数`  
`*/
function callBack(value){
console.log('value='+value);
}
var option = {
        "integerLimit":6,  // 整数部分长度  
        "fractionLimit":2,// 小数部分长度   
        "fontSize":'24px',
        "mobile":false, // 是否移动端  
        "callBack":callBack
 };
inputPlugin = new Input("input_container"); 
keyboardPlugin =  new KeyBoard(inputPlugin,option);

效果图

1、pc端
[外链图片转存失败(img-dk3U5OOx-1569217512301)(https://i.imgur.com/BTUuuWC.jpg)]
2、移动端
[外链图片转存失败(img-edWI92Zf-1569217512301)(https://i.imgur.com/HxzjeN0.jpg)]

移动端IOS浏览器下300ms延迟解决方案

1、引入fastclick库

<script src="fastclick.min.js"></script>

2、代码示例

// 通过fastclick库解决IOS点击300ms延迟问题
(function enableFastclick(){
   var attachFastClick = Origami.fastclick; 
    attachFastClick(document.body);
})();

github地址

虚拟数字键盘

发布了379 篇原创文章 · 获赞 85 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/GAMEloft9/article/details/86541627