文章82
标签28
分类8

使用Mui tabber

通过DIV模拟一个独立页面,通过DIV的显示、隐藏模拟不同页面的切换,典型的SPA模式.

  • 使用场景
    这种模式适合简单业务系统,因为每个选项卡内容要写在一个DIV中,若逻辑复杂,会导致当前页面DOM结构繁杂,造成webview响应缓慢,甚至崩溃;因此若系统较复杂,需要下拉刷新等操作,推荐使用webview模式的选项卡;

  • 引入mui.js
    如果不是在 HBuilder 中新建的 MUI 项目,那么需要自行下载,点我下载 JS,右键保存页面存储到项目中就可以了。

//引入 JS
<script src="js/mui.min.js"></script>
  • 联动绑定
    Mui绝大多数联动,都是采用类似锚点与ID相绑定,选项卡也不例外。
<!-- 例如 -->
<a href="#id-01">选项卡名称</a>
<div id="id-01">选项卡内容</div>
  • 高亮或选中状态
    Mui 统一是添加mui-active,所以如果你要默认哪个选项卡先显示,可以在其 class 上添加这个mui-active

底部选项卡 div 模式

<!-- 底部选项卡 -->
<nav class="mui-bar mui-bar-tab">
    <a class="mui-tab-item mui-active" href="#tabbar">
        <span class="mui-icon mui-icon-home"></span>
        <span class="mui-tab-label">首页</span>
    </a>
    <a class="mui-tab-item" href="#tabbar-with-chat">
        <span class="mui-icon mui-icon-email"><span class="mui-badge">9</span></span>
        <span class="mui-tab-label">消息</span>
    </a>
    <a class="mui-tab-item" href="#tabbar-with-contact">
        <span class="mui-icon mui-icon-contact"></span>
        <span class="mui-tab-label">通讯录</span>
    </a>
    <a class="mui-tab-item" href="#tabbar-with-map">
        <span class="mui-icon mui-icon-gear"></span>
        <span class="mui-tab-label">设置</span>
    </a>
</nav>


<!-- 选项卡内容 -->
<div class="mui-content">
    <div id="tabbar" class="mui-control-content mui-active">tabbar-01</div>
    <div id="tabbar-with-chat" class="mui-control-content">tabbar-02</div>
    <div id="tabbar-with-contact" class="mui-control-content">tabbar-03</div>
    <div id="tabbar-with-map" class="mui-control-content">tabbar-04</div>
</div>

具体效果如下
MUI 选项卡-02

顶部选项卡 div 模式

添加 DOM 结构

<!-- 选项卡头部 -->
<div style="padding: 10px 10px;">
    <div id="segmentedControl" class="mui-segmented-control">
        <a class="mui-control-item mui-active" href="#item1">选项卡 1</a>
        <a class="mui-control-item" href="#item2">选项卡 2</a>
        <a class="mui-control-item" href="#item3">选项卡 3</a>
    </div>
</div>

<!-- 选项卡内容 -->
<div class="tabBox">
    <div id="item1" class="mui-control-content mui-active">item1</div>
    <div id="item2" class="mui-control-content">item2</div>
    <div id="item3" class="mui-control-content">item3</div>
</div>

具体效果如下
MUI 选项卡-01