mui 首頁tabbar切換功能

效果:


B95B8705-95E6-4D08-9AE6-8C374DFE2B69.png

直接上代碼:

tabbar內(nèi)容:

<!--主頁面底部選項(xiàng)卡-->
    <nav class="mui-bar mui-bar-tab">
        <a id="defaultTab" class="mui-tab-item mui-active" href="template/head.html">
            <span class="mui-icon mui-icon-home"></span>
            <span class="mui-tab-label">首頁</span>
        </a>
        <a  class="mui-tab-item" href="template/controls.html">
            <span class="mui-icon mui-icon-checkbox"></span>
            <span class="mui-tab-label">控件</span>
        </a>
        <a class="mui-tab-item" href="template/chat.html">
                <span class="mui-icon mui-icon-email"><span class="mui-badge">5</span></span>
                <span class="mui-tab-label">列表</span>
        </a>
        <a class="mui-tab-item" href="template/contact.html">
                <span class="mui-icon mui-icon-contact"></span>
                <span class="mui-tab-label">通訊錄</span>
        </a>
        <a class="mui-tab-item" href="template/my.html">
            <span class="mui-icon mui-icon-person"></span>
            <span class="mui-tab-label">我的</span>
        </a>
    </nav>

初始化頁面:

//要切換的子頁面
        var subpages = [
        'template/head.html',
        'template/controls.html',
        'template/chat.html',
        'template/contact.html',
        'template/my.html'];
        
        //子頁面樣式,這里只有主頁的底部是公用的,所以距離底部51個(gè)px,距離頂部0個(gè)px
        var subpage_style = {
            top : '0px',
            bottom: '51px'
        };
        
        var aniShow = {};
        
        //創(chuàng)建子頁面,首個(gè)選項(xiàng)卡頁面顯示,其它均隱藏;
            mui.plusReady(function() {
                var self = plus.webview.currentWebview();
                for (var i = 0; i < 5; i++) {
                    var temp = {};
                    var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);
                    if (i > 0) //不是第一個(gè)就隱藏
                    {
                        sub.hide();
                    }
                    else//第一個(gè)不隱藏,并且在標(biāo)志數(shù)組中記錄下來。
                    {
                        temp[subpages[i]] = "true";
                        mui.extend(aniShow,temp);
                    }
                    self.append(sub);//加入子頁面
                }
            });

選項(xiàng)卡事件 點(diǎn)擊切換頁面:

//當(dāng)前激活選項(xiàng)
           var activeTab = subpages[0];
           var title = document.getElementById("title");
            //選項(xiàng)卡點(diǎn)擊事件
           mui('.mui-bar-tab').on('tap', 'a', function(e) {
               var targetTab = this.getAttribute('href');
               if (targetTab == activeTab) {
                   return;
               }
               //更換標(biāo)題
//              title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;
               //顯示目標(biāo)選項(xiàng)卡
               //若為iOS平臺(tái)或非首次顯示,則直接顯示
               if(mui.os.ios||aniShow[targetTab]){
                   plus.webview.show(targetTab);
               }else{
                   //否則,使用fade-in動(dòng)畫,且保存變量
                   var temp = {};
                   temp[targetTab] = "true";
                   mui.extend(aniShow,temp);
                   plus.webview.show(targetTab,"fade-in",300);
               }
               //隱藏當(dāng)前;
               plus.webview.hide(activeTab);
               //更改當(dāng)前活躍的選項(xiàng)卡
               activeTab = targetTab;
           });
           
           
            //自定義事件,模擬點(diǎn)擊“首頁選項(xiàng)卡”
           document.addEventListener('gohome', function() {
               var defaultTab = document.getElementById("defaultTab");
               //模擬首頁點(diǎn)擊
               mui.trigger(defaultTab, 'tap');
               //切換選項(xiàng)卡高亮
               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');
               }
           });
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,214評(píng)論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評(píng)論 25 709
  • Sublime 對(duì)于大多數(shù)人來說肯定不陌生。其簡單輕便的特性,以及豐富的插件,讓不少人愛不釋手。自從被帶入Subl...
    吃土的小此方閱讀 1,276評(píng)論 0 7
  • 昨天認(rèn)識(shí)了碎片化時(shí)間的要具備的三種能力,今天繼續(xù)學(xué)習(xí)三種能力的進(jìn)一步深化,如果去對(duì)時(shí)間的整合,單線和多線的如何切換...
    悠遠(yuǎn)菩提閱讀 229評(píng)論 0 0
  • 已經(jīng)很久沒有看電影了,上一次還是在生日的時(shí)候。 小時(shí)候的自己,每天都幻想著快點(diǎn)長大,這樣我就可以做自己喜歡做的事,...
    暮之心閱讀 230評(píng)論 0 0

友情鏈接更多精彩內(nèi)容