使用inputmode改变移动端键盘弹出的类型


前言

使用原因:需求是同时兼容移动端和PC端的输入,输入框数量多且绑定不同的对象,原本考虑使用vantUI的数字键盘,但是实际使用起来问题比较多,偶然间发现了inputmode这个属性,它可以改变移动端唤起拟态键盘的方式。

可以直接查看官网说明

提示:以下是本篇文章正文内容,下面案例可供参考

一、inputmode是什么?

inputmode是一个HTML全局属性(全局属性对所有 HTML 元素都是通用的),它提供了用户在编辑元素或其内容时可能输入的数据类型,即它可以帮助具有键盘的浏览器或设备,在可输入元素获取焦点时决定显示那种虚拟键盘。

二、它有那些属性

2.1 none

当值为none的时候,不会唤起键盘。这用于浏览器或任何应用程序自行处理虚拟键盘的情况。

2.2 text(默认值)

标准键盘
text

2.3 numeric

当值为numeric的时候,键盘上应显示从 0 到 9 的数字。 “减号”键可能显示也可能不显示。
numeric

2.4 decimal

当值为decimal的时候,键盘上必须显示十进制分隔符(“.” 或 “,”)以及从 0 到 9 的数字。 “减号”键可能显示也可能不显示。
decimal

2.5 tel

当值为tel的时候,键盘上应显示数字 以及井号 () 和星号 () 键。这用于输入电话号码。
tel

2.6 search

当值为search的时候, 键盘上应具有便于搜索的布局,这样的布局具有标记为 “Search” 或任何搜索图标或类似图标的 “Enter” 键。
在这里插入图片描述

2.7 email

当值为email的时候,键盘必须显示 “@” 字符,这将方便用户输入电子邮件。
在这里插入图片描述

2.8 url

当值为url的时候,键盘必须显示 “/” 字符,这将有助于用户输入 URL。
在这里插入图片描述

三、需要注意

WHATWG(超文本应用技术工作组) 规范中列出了 inputmode, 并且现代浏览器正在努力支持它。但 W3C HTML 5.2 规范 不再将其列出(也就是说将其标记为过时的)。在达成共识之前,你应该认为 WHATWG 规范定义的就是正确的。

即使是同一部手机使用不同的输入法也会导致唤起的键盘有差异

四、兼容

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
移动端键盘弹出事件通常会影响页面布局和用户交互。因此,监听键盘弹出事件是很有必要的。下面是一些实现方法: 1. 使用focus和blur事件 在移动端,当用户点击一个可编辑的元素时,浏览器会自动弹出键盘。因此,我们可以通过监听元素的focus和blur事件来确定键盘是否弹出。 示例代码: ```javascript var inputElement = document.getElementById('input'); inputElement.addEventListener('focus', function() { // 键盘弹出事件 }); inputElement.addEventListener('blur', function() { // 键盘收起事件 }); ``` 2. 使用resize事件 当键盘弹出时,窗口的大小会发生改变。因此,我们可以通过监听窗口的resize事件来确定键盘是否弹出。 示例代码: ```javascript window.addEventListener('resize', function() { var windowHeight = window.innerHeight; var documentHeight = document.documentElement.clientHeight; var keyboardHeight = windowHeight - documentHeight; if (keyboardHeight > 0) { // 键盘弹出事件 } else { // 键盘收起事件 } }); ``` 3. 使用CSS样式 在移动端键盘弹出时通常会改变页面的布局。因此,我们可以通过CSS样式来检测键盘是否弹出。 示例代码: ```css @media screen and (orientation: portrait) { /* 竖屏布局 */ .keyboard-show { height: calc(100vh - 216px); } } @media screen and (orientation: landscape) { /* 横屏布局 */ .keyboard-show { height: calc(100vh - 162px); } } ``` 在上面的示例中,我们使用@media查询来检测屏幕方向,并根据键盘的高度来调整页面布局。当键盘弹出时,我们可以通过JavaScript来添加.keyboard-show类,从而触发页面布局的改变
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值