內嵌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'
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM