IPhoneX等不同型號(hào)固定定位兼容問(wèn)題

先說(shuō)問(wèn)題:看2張圖


1.png
2.png

假定下面那個(gè)注解為元素1,需要定位再底部Bar上面。我們這里底部Bar高度為1.16rem,所以我們要定位上去。簡(jiǎn)單。
元素1 bottom:1.16rem就完事了。
正常來(lái)說(shuō)是對(duì)的,但是忽略一個(gè)問(wèn)題。IPhoneX以后機(jī)型是有3部分組成??聪聢D:


3.png

簡(jiǎn)單點(diǎn)來(lái)說(shuō),就是這機(jī)型有安全距離。所以就回出現(xiàn)最上面我所發(fā)現(xiàn)的問(wèn)題。
百度下,發(fā)現(xiàn)要寫(xiě)的樣式頗多,改動(dòng)頗大。
首先,我們的項(xiàng)目已經(jīng)很龐大,不便于我們做大的改動(dòng),其次學(xué)習(xí)成本也是一個(gè)問(wèn)題吧?當(dāng)然了,不包括天才一看就懂的。

廢話(huà)不多說(shuō)了,直接上最我認(rèn)為最有效(這里打個(gè)?),最簡(jiǎn)單的解決方案:

// 這里是寫(xiě)在請(qǐng)求完成之后,也就是說(shuō)數(shù)據(jù)加載完成后。
this.$nextTick(() => {
    // 需求---某個(gè)元素固定定位不同機(jī)型適配問(wèn)題
    // 1 取底部組件距離頂部的高度
    let bottomNavTop = this.$refs.bottomNav.$el.offsetTop;
    // 2 取底部組件的高度
    let bottomNavHeight = this.$refs.bottomNav.$el.clientHeight;
    // 3 取要定位元素的高度
    let tipsInfoHeight = this.$refs.tipsInfo.clientHeight;
    // 4 要定位的元素固定定位top = 1 - 3
    this.$refs.tipsInfo.style.top = bottomNavTop - tipsInfoHeight + "px";
    // 5 頁(yè)面元素的paddingbottom = 2 + 3
    this.$refs.retreatList.style.paddingBottom = bottomNavHeight + tipsInfoHeight + "px";
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容