Android原生键盘弹起,H5页面被压缩的两种解决方案

这篇具有很好参考价值的文章主要介绍了Android原生键盘弹起,H5页面被压缩的两种解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

移动H5项目中,会出现input框获得焦点键盘弹出把页面元素顶上去压缩到一起,影响页面布局.

方案一:监听页面变化,动态的展示和隐藏底部被顶上来的内容

这种方法经调试还不算十分完美

// 监听Android键盘弹起
const listenKeybordAndroid = () => {
  console.log('监听键盘...')
  const originHeight = document.documentElement.clientHeight || document.body.clientHeight
  window.onresize = function () {
    // 键盘弹起与隐藏都会引起窗口的高度发生变化
    const resizeHeight = document.documentElement.clientHeight ||         
                          document.body.clientHeight;
    if (resizeHeight < originHeight) {
      // 当软键盘弹起,在此处操作,控制被顶起的底部元素隐藏
      buttonShow.value = false
    } else {
      // 当软键盘收起,在此处操作
      buttonShow.value = true
    }
  }
}

方案二:监听页面变化,键盘弹起时将变化之前的高度赋值给压缩后的页面

        这种方法相对与第一种能更完善解决问题,就是先获取被影响的页面正常显示时的高度,在键盘被掉起时把这个正常的高度赋值给这个元素就行了,简单地说就是给予被挤压页面一个正常的高度值,具体见下面代码,其中 'content' 为我被影响的页面Id.文章来源地址https://www.toymoban.com/news/detail-574715.html

const clientHeight = ref(0)
clientHeight.value = document.getElementById('content').clientHeight

// 监听Android键盘弹起
const listenKeybordAndroid = () => {
  console.log('监听键盘...')
  const originHeight = document.documentElement.clientHeight || document.body.clientHeight
  window.onresize = function () {
    // 键盘弹起与隐藏都会引起窗口的高度发生变化
    const resizeHeight = document.documentElement.clientHeight || document.body.clientHeight
    if (resizeHeight < originHeight) {
      // 当软键盘弹起,在此处操作
      if (clientHeight.value) {
        document.getElementById('content').style.height = clientHeight.value + 'px'
      }
      console.log('弹出...', document.getElementById('content').style.height, document.body.clientHeight)
    } else {
      // 当软键盘收起,在此处操作
      document.getElementById('content').style.height = '100%'
      console.log('收起...', document.getElementById('content').style.height, document.body.clientHeight)
    }
  }
}

到了这里,关于Android原生键盘弹起,H5页面被压缩的两种解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp,app端时input组件弹起系统键盘时,键盘会顶住页面导致页面会上移

    这个时候,我们可以修改键盘的弹出模式。 App平台软键盘弹出有 adjustResize|adjustPan 两种模式,默认为 adjustPan 模式,小程序平台只支持 adjustPan 模式,H5平台因不同浏览器而异 配置方式,在 pages.json 中配置 style 官方描述:修改系统键盘的模式

    2024年01月18日
    浏览(42)
  • uniapp 微信小程ios端键盘弹起后导致页面无法滚动

    新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问题 这次项目主要使用了

    2024年02月05日
    浏览(54)
  • 小程序底部input输入框,键盘弹起时页面整体上移问题解决

    存在问题: 小程序中,当input输入框位于页面底部时,输入框聚焦后键盘弹起,页面会整体上移,将输入框所在位置定位到键盘上方(图2) 解决思路: 键盘弹起时,页面其他元素不动不动,底部输入框跟随键盘上弹(图3) 效果图对比: 1、input设置属性 :adjust-position=“fal

    2024年02月11日
    浏览(57)
  • 解决uni-app微信小程序底部输入框,键盘弹起时页面整体上移问题

    做了一个记录页面(类似单方聊天页),输入框在底部;当弹出键盘时,页面整体上移,页面头信息会消失不见 比如一个记录页面,需要在键盘弹出时: 底部的输入框跟随键盘上弹 页面头固定在顶部不动 聊天信息区域(即内容区)调整高度,该区域局部滚动 底部输入框f

    2024年02月13日
    浏览(178)
  • 解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题

    一.存在的问题:           微信小程序聊天界面,当input 框获取焦点时会自动调起手机键盘,当键盘弹起时,会导致页面整体上移,页面头信息会消失不见。 二.需要实现的效果 键盘弹出时, 底部的输入框跟随键盘上弹 ; 页面头固定在顶部不动; 3.聊天信息区域(即内

    2024年02月11日
    浏览(71)
  • Android 全局监听软键盘弹起隐藏 动态修改布局并适配无限循环的问题

    要在 Android 应用中全局检测软键盘的弹起,您可以使用 ViewTreeObserver.OnGlobalLayoutListener 监听器来监听布局树的变化。当软键盘弹起或隐藏时,布局树会发生变化,因此您可以在监听器中捕获这些变化。 在上面的代码中, rootView 是您布局的根视图,您需要将其替换为您实际布局

    2024年02月11日
    浏览(40)
  • 解决 uni-app 微信小程序 input 输入框在底部时,键盘弹起页面整体上移问题

    设置使键盘弹起使页面不上移 设置输入框所在盒子为绝对定位 键盘弹起时获取键盘高度 设置输入框所在盒子的 bottom 的键盘高度

    2024年02月05日
    浏览(66)
  • 解决uni-app微信小程序input,textarea输入框在底部时,键盘弹起页面整体上移问题

    问题是这样的input ,textarea获取焦点时会自动调起手机键盘,设置 :adjust-position=“true”,和不设置都会导致键盘弹起时页面整体上移 问题分析 input 获取焦点时会自动调起手机键盘,设置 :adjust-position=“true”,会导致键盘弹起时页面整体上移 思路: 设置使键盘弹起使页面不

    2024年02月11日
    浏览(70)
  • Qt中实现页面切换的两种方式

    在Qt中,可以使用QStackedWidget来实现两个UI界面的互相转换。QStackedWidget是一个堆叠窗口小部件,可以在其中添加多个子窗口,并且只显示其中一个子窗口。 注意:QStackedWidget只能用来装widget,不能装mainwindow!! ! 注意: 上面这种想法是错的! 下面这种想法才是对的! 注意

    2024年02月08日
    浏览(60)
  • html实现原生table并设置表格边框的两种方式

    虽然第三方表格插件多不胜数,但是很多场景还是需要用到原生table,掌握html原生table的实现方法,是前端开发的必备技能。例如:print-js打印、html2canvas生成图片等,用原生table可以规避很多问题。 首先,在写原生table之前,我们先认识一下 border-collapse 属性: border-collapse

    2024年02月15日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包