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

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

分类: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

要回复文章请先登录注册

9***@qq.com

9***@qq.com

回复 6***@qq.com :
亲测有效,感谢分享
2019-12-17 14:40
l***@163.com

l***@163.com

回复 fategaga :
1234
2019-01-19 16:23
5***@qq.com

5***@qq.com

凸起底部导航栏,怎么处理
2018-12-24 10:42
6***@qq.com

6***@qq.com

回复 1***@163.com :
一、在首页获取到底部导航的页面对象
二、通过evalJS()执行一段js脚本
main.evalJS("var defaultTab = document.getElementById('navBarSecond');mui.trigger(defaultTab,'tap');var current = document.querySelector('.mui-bar-tab>.mui-tab-item.mui-active');if (defaultTab !== current) {current.classList.remove('mui-active');defaultTab.classList.add('mui-active');}");
代码如上,简单快捷解决问题,我也搞了很久,才悟出来的
2017-10-18 17:52
老哥教教我

老哥教教我

回复 妙妙 :
顶部title和底部不是在一个页面吗,直接点击时候获取修改就可以了!
2017-08-31 19:57
妙妙

妙妙

只是共用底部导航吗,那顶部title怎么实现切换时也更新标题
2017-07-15 17:25
1***@163.com

1***@163.com

mui 底部导航怎么让点击首页里的某个链接跳转到通讯录选中状态
2017-06-19 17:25
5***@qq.com

5***@qq.com

回复 1***@163.com :
老哥 解决了吗 我也是这个错误
2017-05-16 16:37
5***@qq.com

5***@qq.com

回复 5***@qq.com :
不好用啊 老哥 还是defined
2017-05-16 16:35
fategaga

fategaga

我现在想添加点击两下返回键 退出应用程序。为什么第一个ta b有问题。其他的ta b没问题
2017-04-24 22:45