Angelbeats
Angelbeats
  • 发布:2016-10-12 11:34
  • 更新:2017-03-15 23:43
  • 阅读:1670

在线等!关于沉浸栏问题

分类:HTML5+

在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';                   
            }  
            }
2016-10-12 11:34 负责人:无 分享
已邀请:
Angelbeats

Angelbeats (作者)

引入这个js文件,高度不能调整。不能操作Dom,下面三句不执行。可以弹出alert(topoffset ),也就是顶部加状态栏高度65px。请问怎么解决??谢谢

(function(w){  

    document.addEventListener('plusready',function(){  
        console.log("Immersed-UserAgent: "+navigator.userAgent);  
    },false);     

    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]);// 获取状态栏的高度  
    }  
    w.immersed=immersed;      

    if(!immersed){  
        return;  
    }     

    topoffset = (immersed + 45)+'px';     
    /*调整高度*/  
    document.querySelector(".mui-bar-nav").style.paddingTop = immersed+'px';   
    document.querySelector(".mui-bar-nav").style.height = topoffset;    
    alert(document.querySelector(".mui-bar-nav").style.height);  
    document.querySelector(".mui-content").style.marginTop = immersed+'px';       

})(window);
逍遥虫

逍遥虫

你的通顶问题解决了吗?我也有这个问题不知道怎么解决

该问题目前已经被锁定, 无法添加新回复