帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
124
帖子
0
勋章
2476
Y币

沉浸式的进一步->解决安卓的下移动作

[复制链接]
发表于 2016-10-14 23:28:52
以往怎么做?
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延时执行引起的下移动作感觉,并且这种方式是目前效率最高可拓展性最强的方式!
124
帖子
0
勋章
2476
Y币
原理,获取一次状态栏高度就行了,提前执行js,这样能最大程度上避免下移动作的展示时间。
13
帖子
0
勋章
467
Y币
一直没遇到过状态栏的问题
1682
帖子
10
勋章
467
Y币
感谢分享
17
帖子
2
勋章
2015
Y币
感谢分享
13
帖子
3
勋章
1169
Y币
思路很棒 , 谢谢分享 .~
感谢分享
18
帖子
1
勋章
2万+
Y币

感谢分享
34
帖子
0
勋章
363
Y币
很棒!虽然我一直没关注过这个东西
0
帖子
0
勋章
6
Y币
借鉴一勾子
12下一页
您需要登录后才可以回帖 登录

本版积分规则