• 豌豆资源网
  • 开引网企业服务
  • 服务外包网
  • 内嵌iframe页面在IOS下会受内部元素影响自动撑开的问题

    IOS下的webview页面,内嵌iframe元素,将其样式指定为宽高100%:

    .iframe {
      width: 100%;
      height: 100%;
    }

     

    在安卓下运行均无问题,但是在IOS下会出现异常。

    具体表现为iframe页面内的子元素一旦超出原先的边界,只要能影响到html元素的宽高,就会自动撑开iframe,即使html元素设置了overflow:hidden也没用。
    比如一个body元素下的弹层需要从下往上滑动进场,这个弹层的位置就会导致html高度的变化,因此页面底部的tabbar就会在弹层运动期间先消失再出现。

    解决方法就是使用具体的宽高数值锁定iframe元素:

     
    function onLoadIFrame (index) {
      // 修复IOS下轮播图初始化瞬间会让iframe宽度自行扩大问题
      if (this.ENV.isIOS) {
        const iframe = this.$el.querySelector('#iframe' + index)
        iframe.style.width = iframe.clientWidth + 'px'
        iframe.style.height = iframe.clientHeight + 'px'
      }
    }

     

    posted @ 2020-05-14 13:57  前端一点红  阅读(763)  评论(0编辑  收藏  举报
  • 乐游资源网
  • 热爱资源网
  • 灵活用工代发薪平台
  • 企服知识
  • 355软件知识