ios对于fixed属性不兼容的解决方案

最近在做支付宝口碑项目的时候的,遇到的一个的ios对position:fixed不兼容的的问题的时候的同事给出了一个解决方案,此篇博客是我简述这个解决方案(我是基于vue的写法来讲解的)。

  • 常见的需求的 是在屏幕底部定位一个div,然后里面有个的input的,此时的安卓出现的软键盘的会把这个定位的div推到上面去,但是得ios的情况吧fixed的效果失效的,或产生很大的间隔

  • 现给出的解决的方案的,就在我们没有focus的时候的,这个div的属性不发生改变的,当我们focus的让这个div的fixed变成的absoluted(需在body修改),blur的时候的又变成大fixed的

//html
<footer class='footer' id='footerFixed'>
    <input @focus='addBodyClass' @blur='removeBodyClass'>
</div>
//css
#footerFixed{
    position:fixed;
    height:1rem;
    width:100%;
    bottom:0;
    left:0;
}
//js
addBodyClass(){
  console.info('add')
  document.body.classList.add('full-body');//原生的写法
  console.info(document.body.classList)
},
removeBodyClass(){
  console.info('remove')
  document.body.classList.remove('full-body')
},
//css
body {
    &.full-body{
      position: fixed !important;
      top: 0 !important;
      right: 0 !important;
      bottom: 0 !important;
      left: 0 !important;
      width: 100% !important;
      height: 100% !important;
      padding: 0 !important;
      margin: 0 !important;
      overflow: hidden !important;
      #footerFixed{
        position: absolute;
      }
    }
  }

希望这个方法可以帮到你!!!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值