首页 web前端 html教程 虚拟键盘,移动web开发的痛_html/css_WEB-ITnose

虚拟键盘,移动web开发的痛_html/css_WEB-ITnose

Jun 24, 2016 am 11:24 AM

原生APP的弹出虚拟键盘和收回虚拟键盘,输入框始终贴在虚拟键盘的上方。如下图:

如果移动端web也想做类似的功能,可以实现吗? 

你可能会说着:“不就是放一个position: fixed;的输入框在页面底部嘛,有什么好难的?!” 

当时我也是这么想的(⊙﹏⊙),但事实真的是这样吗?下面我们来看一些测试结果。

安卓4.2.1-qq浏览器,测试结果如下:

如图所示,输入框不见了。。。

 

再看看ios的safari:

为何又多了条白带?

还有,收起键盘后,为啥页面下移了。。。

好吧,其实这只是问题的冰山一角。

进入正题,怎么才能解决这些问题呢?

我们可以先从虚拟键盘入手,看看是否可以监听到呼出键盘、收回键盘这两个事件。

部分浏览器可以通过捕捉resize事件知道是否呼出收起虚拟键盘。

测试页:  http://backtonaturedemo.github.io/frontend/case/keyborad/resize.html

下面是测试的结果:

 

iPhone 5s iOS 8.2 : 

(n表示不能触发resize事件,y表示能触发resize事件)

注意: ios的UC浏览器中,点击fixed定位的输入框,呼出键盘后无法输入。

 

Coolpad8720Q Andorid 4.2.1

 

那么监听focus和blur事件又如何呢?

 

测试页:  http://backtonaturedemo.github.io/frontend/case/keyborad/focusblur.html

 

用上述两台机器继续测试,结论如下:

  1. ios和安卓点击输入框都会触发focus事件
  2. ios的所有浏览器点击虚拟键盘的“完成“键或者其他方式收起键盘都会触发blur事件
  3. 安卓手机在点击”收起按钮“或者其他操作收起键盘的时候,没有触发blur事件,焦点还是在输入框上。

下面为测试截图

 

 

所以,可以采取如下方案做web评论发表框

 

示例页面:  http://backtonaturedemo.github.io/frontend/case/keyborad/demo1.html

 

1.  除评论框以外的元素都放在一个父元素,这里父元素是main。

1 <div class="main">2      <img src="/static/imghw/default1.png"  data-src="http://backtonaturedemo.github.io/frontend/case/keyborad/test.png"  class="lazy" alt="">3      <img src="/static/imghw/default1.png"  data-src="http://backtonaturedemo.github.io/frontend/case/keyborad/test1.png"  class="lazy" alt="">4 </div>
登录后复制

2. 评论框和发布按钮放在一个div里

1 <div class="comment">2     <div class="buttons">3         <button class="sure cell">发表</button>4         <button class="cancel cell">取消</button>5     </div>6     <textarea class="input" placeholder="我来说两句"></textarea>7 </div>
登录后复制

注意: 需要在呼出键盘前,纪录下页面滚动条位置。

呼出键盘后,隐藏.main(除评论框以外的元素)。

撑高输入框,取消fixed,加入上外边距(给发表按钮留下位置)。

当输入框blur或点击取消,还原页面。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
HTML:结构,CSS:样式,JavaScript:行为 HTML:结构,CSS:样式,JavaScript:行为 Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML,CSS和JavaScript的未来:网络开发趋势 HTML,CSS和JavaScript的未来:网络开发趋势 Apr 19, 2025 am 12:02 AM

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML的未来:网络设计的发展和趋势 HTML的未来:网络设计的发展和趋势 Apr 17, 2025 am 12:12 AM

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML与CSS vs. JavaScript:比较概述 HTML与CSS vs. JavaScript:比较概述 Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTML与CSS和JavaScript:比较Web技术 HTML与CSS和JavaScript:比较Web技术 Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML:是编程语言还是其他? HTML:是编程语言还是其他? Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

超越HTML:网络开发的基本技术 超越HTML:网络开发的基本技术 Apr 26, 2025 am 12:04 AM

要构建一个功能强大且用户体验良好的网站,仅靠HTML是不够的,还需要以下技术:JavaScript赋予网页动态和交互性,通过操作DOM实现实时变化。CSS负责网页的样式和布局,提升美观度和用户体验。现代框架和库如React、Vue.js和Angular,提高开发效率和代码组织结构。

&lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签? &lt; strong&gt;,lt; b&gt;有什么区别标签和lt; em&gt;,&lt; i&gt;标签? Apr 28, 2025 pm 05:42 PM

本文讨论了HTML标签,和和关注其语义与表现用途及其对SEO和可访问性的影响之间的差异。

See all articles