移动端Web不安分的小键盘
移动端Web不安分的小键盘
在进行Webapp开发的过程中遇到了这样的问题——在chrome上模拟很完美的页面,在移动端就变了样子,罪魁祸首就是不安分的小键盘~
Bug再现
我们先看看PC端的表现:
不错不错,这个日历的大小位置都还和符合人类的正常审美
让我们上真机调试一下:
这是一个非常实实在在的bug,对用户体验造成了毁灭性打击!!!
诊断
这个原因很简单,因为上面所用的日期选择器是一个input
,不加外接键盘的智能手机和平板电脑在面临这个元素的focus
事件的时候都会下意识地掏出他的大宝贝:虚拟键盘~
解决
找到原因,当然要解决它
方法一:readonly
这是input
的一个属性,浏览器兼容性很不错
这个属性的作用很简单,顾名思义,让这个input
变为只读的。这也就意味着,这个元素的内容不可修改,浏览器看到这个属性就会克制自己掏出小键盘的欲望。
使用方法:
他的用法和disabled
属性很相似,可以传值,也可以不赋值
<input type="text" readonly="readonly" />
<input type="text" readonly=true />
<input type="text" readonly />
上面的写法都是ok的
readonly
和disabled
的区别在于,readonly
的元素不能输入,但可以点击;disabled
连元素被点击的权利都剥夺了。
**缺点:**在IOS上的Safari浏览器表现似乎有问题,我没有iphone没有办法验证,(待我找一部iphone验证一下,然后更新)
方法二:强行失焦
我们可以看出,当input
触发focus
之后小键盘才会弹出,那么我们只要趁浏览器“不注意”,先把交点消除就好了。
修改这个input
的默认focus
事件回调
input.addEventLister("focus",function(){document.activeElement.blur();
});
document.activeElement
可以获取页面中被聚焦的元素,然后调用blur
失焦就ok了。
(当然也可以采用下面的写法,原理是一样的:
input.addEventLister("focus",function(event){event.target.blur();
});
特殊情况:Element以及各种UI组件库
其实可能有很多小伙伴看出来了,我是直接使用了由饿了么前端团队开发的Element
中的组件(是滴,我用了vue)。
这个解决方案就是直接加上属性:editable="false"
(这里使用了v-bind
的缩写)
<el-date-picker v-model="startDate" type="date" placeholder="预测开始日期" :editable="false">
这一点在官方文档里看得到
虽然我用过的UI库不多,但是大部分都会考虑到这一点,并在文档里说明。与其想无头苍蝇一样到处乱找,不如先仔细看看文档里有没有写到~~
移动端Web不安分的小键盘相关推荐
- 移动端web页面列表类上拉加载,查看详情,iframe嵌套第三方页面遇到的问题以及解决办法...
1.移动端上拉加载 网上有很多成熟的插件,比如iscroll.在这里介绍一下用jquery和js写的上拉加载方法.使用原生的去写上拉加载更多需要三个高度去做对比,以新闻类列表举例,首先需要整个dom的 ...
- 轻松掌握移动端web开发【尺寸适配】常用解决方案
本文主要针对初学移动端web开发的读者,笔者也是初学者,文中有众多用词不当之处望读者指正. 前言 从开始做web app开发到现在,一直对移动端的尺寸适配有一种模糊的概念.能说得上来'媒体查询','栅 ...
- 清除浏览器缓存之后为什么还是显示旧的html页面_H5缓存机制浅析-移动端Web加载性能优化...
1 H5缓存机制介绍 H5,即HTML5,是新一代的HTML标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5引入的离线存储,这意味着 web 应用可进行缓存,并可在没 ...
- 移动端web开发分享
移动端web开发浪潮兴起之时,千呼万唤shi出来,在团队内部做的一个分享,以下是写ppt时列出的摘要,时间-2013/09/20 I.前端这个行当 a.发展史 b.前端基本技能介绍(html css ...
- 移动端 Web 开发踩坑之旅
前言 最近在一个移动端的 Web 项目中踩了很多的坑,感觉有必要把它们记录下来,分享给即将踏入移动端 Web 开发大门的新人们. 一.从布局说起 移动端的整体布局一般来说可以分为上中下三个部分,分别为 ...
- 移动端Web开发小记
之前为公司商旅频道写移动端的页面时遇到不少问题,今特来个总结,希望能为后来者带来一些帮助. 不再考虑浏览器兼容性 移动端开发主要对象是手持设备,其中绝大部分是IOS和Android系统,so,在开发此 ...
- 移动端Web开发如何处理横竖屏
<!Doctype html> <html> <head> <meta charset="utf-8"> <meta id=& ...
- 移动端WEB开发之响应式布局(响应式开发原理、bootstrap、阿里百秀案例)
移动端WEB开发之响应式布局 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 设备的划分情况: <!DOCTYPE html> & ...
- 视频教程-移动端Web开发-JavaScript
移动端Web开发 TriAquae开源运维软件创始人,混迹IT运维领域多年,曾就职于松下.国政通.飞信.中金.NOKIA等公司,维护过少至几十台,多至数万台设备的IT系统,致力于提高企业运维自动化水平 ...
最新文章
- ubuntu下matplotlib 升级
- 算法回顾(三) 二分查找
- git commit -m 与 git commit -am的区别
- Google Gson的使用方法及JSON 技术对比
- 变分自编码器VAE:这样做为什么能成?
- 三件套都有什么_床上用品三件套、四件套、21件套都各指什么啊?
- FFMPEG源码分析(二)
- @description iPhoneX炫彩渐变背景实现
- CSerialPort串口类最新修正版(解决关闭死锁问题)
- tomcat启动成功 未加载项目_新里程|尚品食品国际贸易合伙人项目成功启动
- Tcpdump命令学习
- logstash grok切分nginx日志
- php发卡v6_GitHub - Cghang/vfkphp: V发卡 完全开源免费的个人自动发卡解决方案
- win10摄像头无法使用黑屏的解决办法
- DFD数据流图的基本要素及易错点详细介绍
- LinkedIn高级分析师王益:大数据时代的理想主义和现实主义
- 微信企业号加密异常处理:InvalidKeyException
- upc 去除干员 (delete)
- 单片机万年历c语言程序设计,基于AT89C51单片机的多功能
- Unity游戏动画 从入门到住院 1
热门文章
- 国内首家免费企业级私有镜像库 有容云AppHouse震撼来袭
- Ax=b有容的极小范数解
- uoni扫地机器人好用吗_由利Uoni扫地机器人V980 MAX好用吗?详细测评告诉你
- MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询
- c#实现钉钉免登功能
- 计算机科学与技术万金油专业,盘点工学大类里的“万金油”专业
- 安卓模拟器对应键盘快捷键
- 西电软工oop面向对象程序设计实验二上机报告
- 利用计算机得到阻尼振动曲线的包络线公式,波尔共振实验阻尼系数的计算机拟合...
- 阻尼振动与无阻尼电磁振动(大学物理笔记)