MUI底部导航切换子页面

Posted zxcc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MUI底部导航切换子页面相关的知识,希望对你有一定的参考价值。

1.登陆页面进入之后,进入到main页面,main页面只有一个底部导航,然后引入子页面进行渲染。

    <nav class="mui-bar mui-bar-tab" id="tabbar">
            <a class="mui-tab-item mui-active" href="html/applyy.html" id="apply">
                <span class="mui-icon apply"></span>
                <span class="mui-tab-label ">申请</span>
            </a>
            <a class="mui-tab-item" href="html/getmedicine.html" id="getmedicine">
                <span class="mui-icon getmedicine"></span>
                <span class="mui-tab-label ">领药</span>
            </a>
            <a class="mui-tab-item" href="html/me.html" id="me">
                <span class="mui-icon me"></span>
                <span class="mui-tab-label">我的</span>
            </a>
        </nav>

2.css部分,点击高亮切换图片。

#mui-bar {
                height: 1rem!important;
                border-top: 0.8rem;
            }
            
            .mui-tab-item {
                text-align: center;
            }
            
            .mui-icon {
                margin-left: 0.1rem;
                width: 0.5rem!important;
                height: 0.5rem!important;
            }
            
            .mui-tab-label {
                color: #999999;
                font-size:13px!important;
            }
            
            .mui-active .mui-tab-label {
                color: #00cec5;
                font-size:13px!important;
            }
            
            .apply {
                background: url(images/index/apply.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }
            
            .mui-active .apply {
                background: url(images/index/applyactive.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }
            
            .getmedicine {
                background: url(images/index/get.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }
            
            .mui-active .getmedicine {
                background: url(images/index/getactive.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }
            
            .me {
                background: url(images/index/me.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }
            
            .mui-active .me {
                background: url(images/index/meactive.png)0 0.02rem no-repeat;
                background-size: 0.4rem 0.45rem;
            }

3,js部分

// 初始化mui.init()写在这里   
            mui.init();
            //设置默认打开首页显示的子页序号;
            var Index = 0;
            //把子页的路径写在数组里面
            var subpages = [‘html/applyy.html‘, ‘html/getmedicine.html‘, ‘html/me.html‘];

            //把子页的路径写在数组里面
            //所有的plus-*方法写在mui.plusReady中或者后面。
            mui.plusReady(function() {
                //获取当前页面所属的Webview窗口对象
                var self = plus.webview.currentWebview();
                for(var i = 0; i < 3; i++) {
                    //创建webview子页
                    var sub = plus.webview.create(
                        subpages[i], //子页url
                        subpages[i], //子页id
                        {
                            top: ‘0‘, //设置距离顶部的距离
                            bottom: ‘50px‘ //设置距离底部的距离
                        }
                    );
                    //如不是我们设置的默认的子页则隐藏,否则添加到窗口中
                    if(i != Index) {
                        sub.hide();
                    }
                    //将webview对象填充到窗口
                    self.append(sub);
                }
            });

            //当前激活选项
            var activeTab = subpages[Index],
                title = document.querySelector(".mui-title");
            //选项卡点击事件
            mui(‘.mui-bar-tab‘).on(‘tap‘, ‘a‘, function(e) {
                //获取目标子页的id
                var targetTab = this.getAttribute(‘href‘);
                if(targetTab == activeTab) {
                    return;
                }
                //更换标题
                // h1.innerHTML = this.querySelector(‘.mui-tab-label‘).innerHTML;
                //显示目标选项卡
                plus.webview.show(targetTab);
                //隐藏当前选项卡
                plus.webview.hide(activeTab);
                //更改当前活跃的选项卡
                activeTab = targetTab;
            });
            
            
            //自定义事件,模拟点击“首页选项卡”
            //申请页面
            window.addEventListener(‘apply‘, function() {
                 location.reload();                
                var apply= document.getElementById("apply");
                //模拟首页点击
                mui.trigger(apply, ‘tap‘);
                //切换选项卡高亮
                var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
                if(apply!== current) {
                    current.classList.remove(‘mui-active‘);
                    apply.classList.add(‘mui-active‘);
                }
                
            });
            
    
            //领药页面
            document.addEventListener(‘getmedicine‘, function() {
                var getmedicine = document.getElementById("getmedicine");
                //模拟首页点击
                mui.trigger(getmedicine, ‘tap‘);
                //切换选项卡高亮
                var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
                if(getmedicine !== current) {
                    current.classList.remove(‘mui-active‘);
                    getmedicine.classList.add(‘mui-active‘);
                }
            
            });
            
            //我的页面
            document.addEventListener(‘me‘, function() {
                 location.reload();        
                var me= document.getElementById("me");
                //模拟首页点击
                mui.trigger(me, ‘tap‘);
                //切换选项卡高亮
                var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");
                if(me !== current) {
                    current.classList.remove(‘mui-active‘);
                    me.classList.add(‘mui-active‘);
                }
            });

4.子页面需要调用的。

//领药结束跳转页面
                    $("#end").click(function(){
                        mui.fire(plus.webview.currentWebview().opener(),"apply");
                    })

 

以上是关于MUI底部导航切换子页面的主要内容,如果未能解决你的问题,请参考以下文章

mui框架中底部导航的跳转1

mui中选项卡切换中怎么禁止页面左右滑动

MUI底部导航栏切换效果

隐藏子屏幕/片段的android底部导航视图

mui tab bar 底部导航栏跳转页面。不用pluseady 因为不支持

mui框架中底部导航的跳转2