MUI 啟用沉浸式&header顯示問題
阿新 • • 發佈:2018-11-05
- 啟用沉浸式
在manifest.json配置檔案中新增如下程式碼(兩種方式皆可)
a、
"plus": {
"statusbar": {
"immersed": "supportedDevice",
"style": "dark"
},
b、
"plus": {
"statusbar": {
"immersed": true
},
- 啟用沉浸式後,header顯示問題
MUI 中 ,header標籤的高度預設為一個固定值。在實際中,不同的移動裝置狀態列是不一樣的,所以在H5中使用"header"標籤時顯示出問題。
(如果使用原生的 標題欄,不會出現如上header顯示問題)
如下解決:
a、在header標籤中新增id=“header”
b、新增如下js,可放在一個js檔案中統一引用
mui.plusReady(function() { var topoffset = '45px'; var header = document.getElementById('header'); console.log(header) console.log(plus.navigator.isImmersedStatusbar()) if(plus.navigator.isImmersedStatusbar()) { // 相容immersed狀態列模式 // 獲取狀態列高度並根據業務需求處理,這裡重新計算了子視窗的偏移位置 topoffset = (Math.round(plus.navigator.getStatusbarHeight()) + 45); header.style.height = topoffset + 'px'; header.style.paddingTop = (topoffset - 45) + 'px'; } });
c、設定內容欄div 的margin-top 屬性,如圖所示
3. 啟用沉浸式後,下拉重新整理時圖示高度設定
down: {
style: 'circle',
height: '50px',
range: '100px',
offset: '35px',
callback: pulldownRefresh
},
4.選項卡顯示問題
在啟用沉浸式後,如下圖所示tab標籤,被原生的標題欄遮蓋了,
在此我們更改下內容欄的top座標即可。
① 在js 中,以下是用來展示內容欄html頁面的方法
mui(".scroll").on("tap", ".mui-control-item", function(e) { var wid = this.getAttribute("data-wid"); group.switchTab(wid); });
② 我們進入switchTab()方法,在webviewGroup.js中,更改top值即可。