在plus事件写,打开页面会产生从45px到65px的一个动画过程,也就是没有沉浸栏高度到有沉浸时的高度的一个过程,很难看,请问怎么解决?我看demo是直接引入immersed.js文件,我测试这样引入对高度不起作用。测试这个问题打包了有十几次都没用。主要不理解以下问题(小白勿喷):
1、topoffset=(Math.round(plus.navigator.getStatusbarHeight())+45)+'px';需要在5+里调用,在DOM加载渲染后才会触发,无法渲染前根据不同的状态来设置css。是不是也会产生我上面出现的问题原因。如果是怎么解决呢?
2、userAgent中特定字段Html5Plus/1.0后添加Immersed标识。*ms=(/Html5Plus\/.+\s(.(Immersed\/(\d+.?\d).))/gi).exec(navigator.userAgent);**不懂为什么这样写就可以获取状态栏高度,可能我刨根问题了,这个可以不回答。
mui.plusReady(function () {
if(plus.navigator.isImmersedStatusbar()) {
var topoffset = '45px';
var immersed = 0;
var ms = (/Html5Plus\/.+\s\(.*(Immersed\/(\d+\.?\d*).*)\)/gi).exec(navigator.userAgent);
// 判断当前环境为沉浸式状态栏模式
if(ms && ms.length >= 3) {
immersed = parseFloat(ms[2]);// 获取状态栏的高度
}
topoffset = (immersed + 45)+'px';
/*调整高度*/
document.querySelector(".mui-bar-nav").style.paddingTop = immersed+'px';
document.querySelector(".mui-bar-nav").style.height = topoffset;
document.querySelector(".mui-content").style.marginTop = immersed+'px';
}
}
1***@gmail.com
回复 Angelbeats:这个引入顺序该是怎样的,请详细说明一下,谢谢
2016-12-06 18:20