新的iphonex因為沒有實體home按鍵,多了一個虛擬home按鍵導致大量的適配問題。
現在iphonex的web端適配基本不用考慮頭部的問題,主要需要關注的fixed底部定位的問題。
先看看所遇到的問題
下面是未經適配iphonex下的各瀏覽器的展示情況:
safari的截圖:
chrome的截圖:
UC瀏覽器:
QQ瀏覽器:
手機QQ內嵌瀏覽器:
微信內嵌瀏覽器:
得出結論
- 可以看出fiexd定位的部分在safari,chrome,微信內嵌瀏覽器會被擋住部分文字,對著三個瀏覽器只需要把fixed的定位網上提20多個畫素即可
- 手機QQ內嵌瀏覽器是個特例:他會自動把你的fixed定位往上提一部分,幫你做適配但是也坑你了下面漏空的一部分他也沒管(這個很操蛋不知道後續版本會修復不),對此瀏覽器不用做任何操作!
- UC和QQ瀏覽器因為本身做了相應處理不用做任何的適配操作!
那現在我們需要對不一樣的瀏覽器做不一樣的對應處理
獲取裝置資訊和瀏覽器資訊。判斷iphonex的方法,因為他奇葩的解析度1125*2436 通過這個就能斷定就是他了!
var w=window.screen.width * window.devicePixelRatio;
var h=window.screen.height * window.devicePixelRatio;
_client.iphonex=!!(w==1125&&h==2436);複製程式碼
至於各種瀏覽器的判斷方式,此處就不說網上太多。