大树哥
大树哥
  • 发布:2015-06-25 12:01
  • 更新:2019-12-17 14:40
  • 阅读:35841

底部导航菜单切换,并返回首页的实现

分类:MUI
mui

实现nav导航,与子页面切换
文档参考:http://dcloudio.github.io/mui/javascript/#subpage

在html添加数个导航,在js中,为这些导航批量添加事件,在点击的时候打开子页面。子页面无底部导航,共用父页面的底部导航。
父子页面共用底部导航,在预加载的地方,使用styles.bottom即可

复杂的地方在于,切换为首页时,要保持首页的状态,则需要显示应用初始化时候的状态,则需要找到当前父页面的id并进行展示

        $.page_nav = function() {  
            navs = document.querySelectorAll(".mui-tab-item");  
            for(n in navs)  
            {  
                obj = navs[n] .getAttributeNode("id").value;  
                app_debug && console.log(obj);  

                if(obj != 'page_index') {  
                    $.preload({  
                        "id": obj,  
                        "url": obj.replace("page_", "")+'.html',  
                        "styles":{  
                            top:'0px',//mui标题栏默认高度为45px  
                            bottom: '50px',//mui导航栏默认高度为50px  
                        }  
                    });  
                }  

                document.getElementById(obj).addEventListener("tap", function(){  
                    if(this.id == 'page_index') {  
                        //获得主页面的webview  
                        var main = plus.webview.currentWebview();  
                        mui.openWindow({"id":main.id});  
                    } else {  
                        mui.openWindow({  
                            "id":this.id,  
                            "crateNew":false,  
                            "styles":{  
                                top:'0px',//mui标题栏默认高度为45px  
                                bottom: '50px'//默认为0px,可不定义  
                            }  
                        });  
                    }  
                }, false);  
            }  
        }  

        //底部导航菜单绑定  
        $.page_nav();
    <nav class="mui-bar mui-bar-tab">  
        <a class="mui-tab-item mui-active" id="page_index" target="index.html">  
            <span class="mui-icon icon iconfont icon-beauty">&#xe600;</span>  
            <span class="mui-tab-label">清新</span>  
        </a>  
        <a class="mui-tab-item" id="page_category" target="category.html">  
            <span class="mui-icon iconfont icon-sexy">&#xe601;</span>  
            <span class="mui-tab-label">时尚</span>  
        </a>  
        <a class="mui-tab-item" id="page_article" target="article.html">  
            <span class="mui-icon iconfont icon-meng">&#xe602;</span>  
            <span class="mui-tab-label">评论</span>  
        </a>  
        <a class="mui-tab-item" id="page_login" target="login.html">  
            <span class="mui-icon mui-icon-gear"></span>  
            <span class="mui-tab-label">设置</span>  
        </a>  
    </nav>
4 关注 分享
谭大爷 h***@163.com f***@163.com xuxinyyyyy

要回复文章请先登录注册

fategaga

fategaga

点击两下退出应用程序,这个你做了么
2017-04-22 23:06
付楚

付楚

还有 、我用那个hellow mui的例子做底部导航、会一直循环页面、是什么原因啊?
2017-03-06 16:34
付楚

付楚

我的底部导航栏切换有白屏、需要怎么解决呢?
2017-03-06 16:31
j***@126.com

j***@126.com

为什么在循环里写 preload 会报错呢
2017-02-10 12:00
5***@qq.com

5***@qq.com

(function($){......})(mui);在函数体里就可以用$.page_nav了
2016-09-06 18:00
1***@163.com

1***@163.com

报这个错误 has no method 'getAttributeNode' 是哪里出错了吗
2016-09-06 11:37
大霸王

大霸王

回复 疯子宇 :
$必须放在一个预定义的{}里面
2016-05-05 12:56
疯子宇

疯子宇

回复 大霸王 :
我也 $ is not defined 需要引用什么? 怎么解决?
2016-04-26 21:28
大霸王

大霸王

回复 helloWld :
解决了,用hellomui例子的
2016-04-18 15:28
helloWld

helloWld

回复 大霸王 :
你的决解了吗
2016-04-18 10:58