美文网首页
MUI tabBar及subPage切换

MUI tabBar及subPage切换

作者: TIGER_XXXX | 来源:发表于2017-08-21 21:52 被阅读214次

1.设置导航栏

<header class="mui-bar mui-bar-nav">
  <h1 class="mui-title">标题</h1>
</header>

2.创建底部选项卡,快捷输入mTab

<nav class="mui-bar mui-bar-tab" id="tabBar">
  <a class="mui-tab-item mui-active" id="home.html">
    <span class="mui-icon mui-icon-home"></span>
    <span class="mui-tab-label">首页</span>
  </a>
  <a class="mui-tab-item" id="phone.html">
    <span class="mui-icon mui-icon-phone"></span>
    <span class="mui-tab-label">电话</span>
  </a>
  <a class="mui-tab-item" id="email.html">
    <span class="mui-icon mui-icon-email"></span>
    <span class="mui-tab-label">邮件</span>
  </a>
  <a class="mui-tab-item" id="setting.html">
    <span class="mui-icon mui-icon-gear"></span>
    <span class="mui-tab-label">设置</span>
  </a>
</nav>

3.添加子界面

mui.init({subpages:[{
                    url: 'home.html',
                    id: 'home.html',
                    styles: {top: '44px',bottom: '44px'}
                },
                {
                    url: 'phone.html',
                    id: 'phone.html',
                    styles: {top: '44px',bottom: '44px'}
                },
                {
                    url: 'email.html',
                    id: 'email.html',
                    styles: {top: '44px',bottom: '44px'}
                },
                {
                    url: 'setting.html',
                    id: 'setting.html',
                    styles: {top: '44px',bottom: '44px'}
                }
            ]});

设置属性有很多,根据需要执行设置,需要注意的是,在有naviBar和tabBar的情况下,top和bottom需要设置为44px,用来让开导航和底部选项卡
4.将home作为第一个显示的界面

mui.plusReady(function(){
  var view = plus.webview.getWebviewById('home.html');
  view.show();
})

5.选项卡上的按钮绑定点击事件

mui("#tabBar").on('tap', 'a', function(e) {
  var id = this.getAttribute('id');
  var view = plus.webview.getWebviewById(id);
  view.show();
});

6.在实际使用过程中发现,app刚打开时显示的是"设置"界面而不是"首页"
原因在于我们通过getWebviewById时,首页并没有加载出来,所以通过方法拿到的是个空
因此我们这里需要做一个回调
在首页加载完毕之后通知index界面,将首页显示在最前端

首页代码
function plusReady(){
  //拿到index界面,这里index是启动页,所以用getLaunchWebview方法
  var indexWV = plus.webview.getLaunchWebview();
  mui.fire(indexWV,'homeReady');
}
if (window.plus) {
  plusReady()
} else{
  document.addEventListener('plusready',plusReady,false);
}
index代码
function plusReady(){
  window.addEventListener('homeReady', function() {
    var view = plus.webview.getWebviewById('home.html');
    view.show();
  });
}
if (window.plus) {
  plusReady()
} else{
  document.addEventListener('plusready',plusReady,false);
}

demo:https://github.com/TigerCui/DCloudDemo/tree/master/TabBarDemo

相关文章

  • MUI tabBar及subPage切换

    1.设置导航栏 2.创建底部选项卡,快捷输入mTab 3.添加子界面 设置属性有很多,根据需要执行设置,需要注意的...

  • 六、Flutter自定义Tabbar

    目录一、效果展示二、底部Tabbar三、顶部Tabbar 一、效果展示 底部Tabbar切换和顶部Tabbar切换...

  • MUI之Tabbar

    1.一开始犯了一个很low的错误,就是引用文件的路径 ..js/mui.min.js, 你也不看看自己文件在那个目...

  • mui使用tabbar报错

    点击tabbar时候报错信息:mui.min.js?579c:8 [Intervention] Unable to...

  • Vue项目底部导航栏如何切换高亮

    最近写项目,底部导航栏,用Mui的tabbar,删除第一个标签中.mui-active 然后在router文件夹中...

  • tabBar 切换

    AppDelegate*delegate = (AppDelegate*)[[UIApplicationshare...

  • mui首页导航栏

    mui开发的入口文件(非登录页面)导航栏子页面切换代码. //预加载 mui.init({}) var subIn...

  • 微信小程序

    微信小程序 - 监听 TabBar 切换点击事件 在小程序开发的时候想要监听系统的 TabBar 切换点击事件,只...

  • day1

    制作首页APP组件 完成header区域,使用mint-UI组件 完成底部tabbar区域,使用的是MUI。 MU...

  • Flutter学习(三)bottomNavigationBar切

    Flutter学习(三)bottomNavigationBar切换状态重置问题 点击切换tabbar的时候每次页面...

网友评论

      本文标题:MUI tabBar及subPage切换

      本文链接:https://www.haomeiwen.com/subject/qabhdxtx.html