如何在uniapp中獲取可視區(qū)域的高度(uni.getSystemInfo)
前言
在實(shí)際開發(fā)中我們會(huì)遇到不確定高度的情況,那么在uniapp中我們?nèi)绾潍@取區(qū)域的高度吶?一起來(lái)看看吧
使用到的:
uni-app提供了異步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2個(gè)API獲取系統(tǒng)信息
uni.getSystemInfo(OBJECT)
異步獲取系統(tǒng)信息
OBJECT 參數(shù)說(shuō)明:
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
success | Function | 是 | 接口調(diào)用成功的回調(diào) |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
success 返回參數(shù)說(shuō)明,目前需要使用到的:
參數(shù) | 說(shuō)明 |
windowHeight | 可使用窗口高度 |
statusBarHeight | 手機(jī)狀態(tài)欄的高度 |
一、分析uniapp的可視區(qū)域
是哪塊哪?其實(shí)和我們想的有些出入
其實(shí)就是藍(lán)色區(qū)域=紅色區(qū)域-綠色區(qū)域

代碼:
getClineHeight(){
const res = uni.getSystemInfo({
success:(res=>{
this.clientHeight = res.windowHeight-uni.upx2px(80)
})
});
},
tip:注意,在我們的微信小程序中是可以正確顯示的,但是在ios中是有問(wèn)題的
二、如何在小程序和ios中都能正確顯示
我們只需要獲取系統(tǒng)信息中的platform信息,判斷是ios或者android或者其他
tip注意點(diǎn):
1.注意這里的單位是pxname我們需要將代碼中導(dǎo)航欄寫的css的80rpx轉(zhuǎn)換為40px,使用upx2px直接可以進(jìn)行轉(zhuǎn)換
2.ios本身有44的高度,Android是48
代碼:
getBarHeight(){
const res = uni.getSystemInfoSync()
if(res.platform==='ios'){
return 44+res.statusBarHeight
}else if(res.platform==='android'){
return 48+res.statusBarHeight
}else{
return 0;
}
},
//獲取可視區(qū)域高度
getClineHeight(){
const res = uni.getSystemInfo({
success:(res=>{
this.clientHeight = res.windowHeight-uni.upx2px(80)-this.getBarHeight();
})
});
},三、減掉的部分
白色部分=綠色部分(windowHeight)-藍(lán)色部分(ios44,Android48)-橙色部分(getSystemInfoSync中的statusBarHeight)-黑色部分(你設(shè)置的高度或者使用組件的高度,注意單位是px)
windowHeight | 可使用窗口高度 |
windowHeight | 可使用窗口高度 |
減去

代碼:
getBarHeight(){
const res = uni.getSystemInfoSync()
if(res.platform==='ios'){
return 44+res.statusBarHeight
}else if(res.platform==='android'){
return 48+res.statusBarHeight
}else{
return 0;
}
},
//獲取可視區(qū)域高度
getClineHeight(){
const res = uni.getSystemInfo({
success:(res=>{
this.clientHeight = res.windowHeight-uni.upx2px(80)-this.getBarHeight();
})
});
},總結(jié)
到此這篇關(guān)于如何在uniapp中獲取可視區(qū)域的高度(uni.getSystemInfo)的文章就介紹到這了,更多相關(guān)uniapp獲取可視區(qū)域的高度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序自定義彈出模態(tài)框禁止底部滾動(dòng)功能
這篇文章主要介紹了微信小程序自定義彈出模態(tài)框禁止底部滾動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
一文詳解如何用原型鏈的方式實(shí)現(xiàn)JS繼承
JavaScript中,每當(dāng)創(chuàng)建一個(gè)對(duì)象,都會(huì)給這個(gè)對(duì)象提供一個(gè)內(nèi)置對(duì)象 [[Prototype]] 。這個(gè)對(duì)象就是原型對(duì)象,[[Prototype]] 的層層嵌套就形成了原型鏈。本文將詳細(xì)講解如何用原型鏈的方式實(shí)現(xiàn)一個(gè) JS 繼承,感興趣的可以了解下2022-04-04
JavaScript中的垃圾回收與內(nèi)存泄漏示例詳解
這篇文章主要給大家介紹了關(guān)于JavaScript中垃圾回收與內(nèi)存泄漏的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
ES6 Promise對(duì)象的應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6 Promise對(duì)象的應(yīng)用,結(jié)合實(shí)例形式分析了Promise對(duì)象原理與異步處理相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
JavaScript實(shí)例--實(shí)現(xiàn)計(jì)算器
這篇文章主要介紹了JavaScript實(shí)現(xiàn)計(jì)算器,下面文章實(shí)現(xiàn)計(jì)算器作為學(xué)習(xí)期間的一個(gè)小練習(xí),需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-01-01
js點(diǎn)亮星星評(píng)分并獲取參數(shù)的js代碼
點(diǎn)亮星星評(píng)分后,點(diǎn)擊按鈕,立即獲得分?jǐn)?shù)參數(shù)值,方便不想使用ajax傳參的朋友2014-07-07
標(biāo)準(zhǔn)的js無(wú)縫滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了標(biāo)準(zhǔn)的js無(wú)縫滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
ajax分頁(yè)效果(bootstrap模態(tài)框)
這篇文章主要為大家詳細(xì)介紹了ajax分頁(yè)效果的實(shí)現(xiàn)方法,結(jié)合bootstrap模態(tài)框使用 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01

