webview H5 兼容性彙總(持續更新中)

webview H5 兼容性彙總(持續更新中)

1 IOS問題:position:fixed固定定位抖動問題

問題背景:在業務場景中,在ios終端環境下運行H5頁面,需要用到fixed定位,並且fixed定位需要上下移動(y軸移動)

網上解決方案:

① 給頂級元素設置heightL100% ( 並沒有奏效 ) 。

② 增加transform: translate(0) 屬性 ( 並沒有奏效 )

③ 改變佈局由fixed 定位,改成absolute定位,滾動條基於自身。( 能夠從根本上解決偶爾跳屏的問題,但是隨之而來的就是ios 滾動條問題,基於document纔能有效觸發,遂放棄此方案 )

④ 不改變佈局的情況下,由fixed 定位,改成absolute定位,滾動條基於document,定位值完全取決於數據驅動。(能夠從根本上解決偶爾跳屏的問題,但是隨之而來的就是要不斷改變自身的top值 ,導致更新會慢的情況 ,用戶體驗不好,流暢度欠佳,遂放棄此方案 )

⑤ -webkit-overflow-scroll:touch解決滑動無慣性( 並沒有奏效 )

⑥ background-attachment:fixed。(並沒有奏效)

解決方案(親測):

繼續使用fixed定位 抖動不是單純fixed定位的原因。和頻繁改變top值也有很大關係。

放棄改變top值 ,運用 transform: translateY 來使視圖上下移動。

2 android問題:border-radius圓角被拉伸問題

問題背景:當我們期望用 border-radius:50%;來繪製圓的時候。 ios沒任何問題 ,android上圓角被拉伸,並不圓

解決方案:

我們先把已知視圖寬高變成2倍 ,然後用 transform: scale(.5) 讓視圖縮小50% ,就可以在 android得到很圓的效果。

🌰例子:

{
    border-radius:50%;
    width:10px;
    heigth:10px;
}

變成->

{
    border-radius:50%;
    width:20px;
    heigth:20px;
    transform: scale(.5);
}

3 android問題:1px 在安卓的個別手機上顯示不出來

解決方案: 在內聯樣式中寫2px , 然後用transform: scaleY(0.5) 高度縮放50%

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章