2020-4-19 seo達(dá)人
IOS下的webview頁面,內(nèi)嵌iframe元素,將其樣式指定為寬高100%:
.iframe { width: 100%; height: 100%;
}
在安卓下運(yùn)行均無問題,但是在IOS下會(huì)出現(xiàn)異常。
具體表現(xiàn)為iframe頁面內(nèi)的子元素一旦超出原先的邊界,只要能影響到html元素的寬高,就會(huì)自動(dòng)撐開iframe,即使html元素設(shè)置了overflow:hidden
也沒用。
比如一個(gè)body元素下的彈層需要從下往上滑動(dòng)進(jìn)場,這個(gè)彈層的位置就會(huì)導(dǎo)致html高度的變化,因此頁面底部的tabbar就會(huì)在彈層運(yùn)動(dòng)期間先消失再出現(xiàn)。
解決方法就是使用具體的寬高數(shù)值鎖定iframe元素:
function onLoadIFrame (index) { // 修復(fù)IOS下輪播圖初始化瞬間會(huì)讓iframe寬度自行擴(kuò)大問題 if (this.ENV.isIOS) { const iframe = this.$el.querySelector('#iframe' + index)
iframe.style.width = iframe.clientWidth + 'px' iframe.style.height = iframe.clientHeight + 'px' }
}
藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.teruid.com