H5 输入框键盘弹出收起

这篇具有很好参考价值的文章主要介绍了H5 输入框键盘弹出收起。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 . 安卓系统 下点击输入框 键盘弹出以及收起 会使得webview 的窗口高度发生变化

键盘弹出的时候:

webview的原高度 = 键盘的高度 + webview 现在的窗口高度

Ios 系统 下 键盘弹出收起不会影响webview 的窗口高度发生变化

键盘弹出的时候 可以监听focusin事件; 键盘收起的时候 可以监听focuout 事件; (focusin/focusout 支持冒泡)

但是安卓系统下 点击键盘的右边的收起 不会触发 focuout事件;  只有其他空白处使得光标失去焦点(blur) 才会触发;  所以安卓下 可以通过判断 webview 的高度变化 来 监听键盘的弹出收起; 

h5收起键盘,ios,vue,前端,html,javascript

安卓下 
//获取原窗口的高度
      var originalHeight=document.documentElement.clientHeight ||document.body.clientHeight;
      window.onresize = function() {
        // alert('高度发现变化')
          //键盘弹起与隐藏都会引起窗口的高度发生变化
          var resizeHeight=document.documentElement.clientHeight || 
           document.body.clientHeight;
          const activeEl = document.activeElement; // 获取当前点击的元素
          if(resizeHeight<originalHeight){
            //当软键盘弹起,在此处操作
            console.log('当软键盘弹起,在此处操作')
            if (activeEl.tagName === 'INPUT' || activeEl.tagName === 'TEXTAREA') {}
          } else {
          //当软键盘收起,在此处操作
            console.log('当软键盘收起,在此处操作')
            if (activeEl.tagName === 'INPUT' || activeEl.tagName === 'TEXTAREA') {
                activeEl.blur
            }
          }
      }
Ios 系统下
document.body.addEventListener("focusin", (e) => {

});
document.body.addEventListener("focusout", () => {
});
单独的input/textarea 监听键盘弹出、收起就监听各自的foucs/blur 事件

参考:

彻底解决H5中键盘遮挡输入框的问题 - 知乎

h5手机键盘弹出收起的处理 | Hzzly文章来源地址https://www.toymoban.com/news/detail-520203.html

到了这里,关于H5 输入框键盘弹出收起的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • H5 防止安卓手机软键盘弹出挤压页面导致变形的方法

    在做移动端h5页面时,安卓端软键盘会导致页面压缩变形的问题:(安卓端有问题,IOS端没问题) 安卓端:安卓中,如果将footer元素设置为position:fixed或absolute,因为软键盘会改变页面的高度(将页面顶上来),因此footer元素也跟着移动上来,导致页面变形; IOS端:苹果的软

    2024年02月13日
    浏览(45)
  • h5键盘弹起遮挡输入框的处理

    一、前言: 混合开发中遇到一个问题,有些型号的安卓机和ios机型,输入框唤起键盘后,输入框会被键盘遮挡,需要手动滑动才能漏出来,影响用户体验 二、解决办法: 1.ios和android手机唤起的windows事件不一样,要分别处理 2.document.body.scrollTop无效,可以用document.documentElemen

    2024年02月15日
    浏览(45)
  • iOS微信小程序键盘弹出时输入框被挡住

    1. 背景: 底部输入框采用fixed定位后,在iPhone13这种有底部安全区的手机上,键盘弹出时被遮挡,在安卓机上是正常的。 2. 查找问题: 看了网上的解决方案说设置“adjust-position”,试了一下没效果,本来现在这个属性也是默认为true的,看网上另一个解决方案就是判断键盘弹

    2024年02月12日
    浏览(52)
  • 移动端H5页面在input输入框获得焦点时禁止唤起键盘

    移动端 实现效果: 当input输入框获得焦点时,在保留光标的情况下,又不让手机虚拟键盘弹起 问题背景: 哈哈哈哈 我又来了,又是java安卓应用嵌入H5页面,给大家看下效果 点击开始时间或者结束时间时会弹出日期选择器,这个时候呢在手机上看的话,会同时触发键盘,导

    2024年02月16日
    浏览(49)
  • uniapp微信小程序 实现评论键盘弹出的时候 有两个输入框,第一个输入框被禁用并绑定了点击事件,点击后想要触发第二个输入框获取焦点并弹出键盘。但是在 iOS 真机上点击后键盘会短暂失去焦点

    问题 :我现在有一个需求就是 要实现输入评论  有两个输入框,第一个输入框被禁用并绑定了点击事件,点击后想要触发第二个输入框获取焦点并弹出键盘。但是在 iOS 真机上点击后键盘会短暂失去焦点  安卓真机测试没有问题 原因 : 1. iOS 上输入框聚焦有一个显式的动画过

    2024年02月04日
    浏览(58)
  • h5(html5)+css3前端笔记二

    一、表格标签 表格的主要作用: 表格主要用于 显示、展示数据 ,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 1. table/table 用来定义表格的标签

    2024年02月14日
    浏览(59)
  • h5键盘弹起底部菜单(按钮)被顶起-vue自定义指令解决

            开发H5中测试过程中发现在安卓手机上,input/textarea 获取焦点 软键盘弹出 会让absolute/fixed或者使用flex局部 固定在底部的元素(固定底部栏)顶起来问题;在搜索后发现安卓上在键盘弹起的时候浏览器   body height 100%   其实只有键盘以上范围,这里决解方法有很多可

    2024年02月12日
    浏览(54)
  • vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互

    vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互 前端同学可以加我一起交流一起进步 案例描述:需求是 混合开发中,H5页面与原生app安卓或者ios交互(包括,调用app的方法,或者app调用 h5中定义的方法)从而实现交互 项目场景:开发帮助中心页面,帮助中心页面采

    2024年02月11日
    浏览(46)
  • Vue(h5)与App(android,ios)端交互详解

    最近开发vue与app交互,总结了一下开发心得。我是一名Android开发者,vue开发这块也稍有涉足,在android或者IOS中展示h5可以减少工作量,也能满足用户体验性。下面主要以Android和Vue方法介绍为主。 上菜了     三、 vue代码 注意,Vue中的方法通常是写在vue实例的methods中的,ap

    2024年02月10日
    浏览(37)
  • uniapp多行文本展开或收起(兼容h5、微信小程序,其它未测试)

    文本过短时隐藏按钮,需要知道文本全部展示的行数 文本收起时,微信小程序不能直接获取文本展示的高度 文本展示时,微信小程序不能直接获取文本收起的高度 所以使用 占位文本 获取单行文本高度,最终通过计算得到文本全部展示时的行数 本文介绍的方法兼容h5、微信

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包