|
以往怎么做?
apiready里扔一大堆代码(顶部动态添加padding的代码),然而安卓延时执行apiready,安卓机就能感觉到下移动做,ios还好一点,不明显。
怎么优化:
引导页面里的apiready动态获取状态栏高度,具体怎么获得可以看看api.js源码;
这里给一个参考
if(api.systemType=="ios"){
if(parseInt(api.systemVersion,10)>=7){
$api.setStorage("header_status",'20')
}else{
$api.setStorage("header_status",'0')
}
}else{
if(parseFloat(api.systemVersion)>=4.4){
$api.setStorage("header_status",'25')
}else{
$api.setStorage("header_status",'0')
}
};
然后呢,我们在需要适配的页面里加上,这段代码可以在apiready之外也推荐这么做,放在首先执行JS的地方。
var header_height=parseInt($api.getStorage("header_status"));
document.querySelector(".header_status").style.height=header_height+"px";
咱们的状态栏的class就是header_status
<div class="header_status"></div>
在api.css配置header_status的背景颜色即可;
这样就可以巧妙地避免由于apiready延时执行引起的下移动作感觉,并且这种方式是目前效率最高可拓展性最强的方式!
|
|