Vue小練習(xí):二級(jí)導(dǎo)航

完整代碼
初學(xué)前端翔横,不喜勿噴

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>二級(jí)導(dǎo)航</title>
        <style type="text/css">
            html,
            body {
                padding: 0;
                margin: 0;
                width: 100vw;
                height: 100vh;
            }

            #app {
                position: relative;
                display: flex;
                width: 100%;
                height: 100%;
            }

            nav {
                padding-top: 20px;
                width: 200px;
                background-color: rgba(223, 230, 233, 1.0);
                border-right: 1px solid #ddd;
                box-shadow: 3px 0 2px 2px #bfbfbf;
                height: 100%;

            }

            ul {
                margin: 0;
                padding: 0;
            }

            li {
                list-style: none;
            }

            .pre_menu {
                position: relative;
                padding: 10px;
                font-size: 18px;
                font-weight: 300;
            }

            .pre_menu::after {
                content: "";
                position: absolute;
                top: 45px;
                left: 0;
                height: .5px;
                width: 100%;
                background-color: rgba(0,170,255,.2)

            }

            .sub_menu {
                padding: 15px;
                position: relative;
                font-size: 13px;
                
            }

            .pre_menu:hover,
            .sub_menu:hover {
                cursor: pointer;
            }
            .sub_menu:hover{
                background: rgba(96, 163, 188,1.0);
            }
            .sub_menu::after {
                content: "";
                position: absolute;
                top: 46px;
                left: 0;
                height: 1px;
                width: 100%;
                background-color: #FFFFFF;
            }

            a {
                display: flex;
                justify-content: space-between;
                vertical-align: top;
            }

            svg {
                width: 20px;
                height: 20px;
            }

            a>div {
                transition: .5s;
            }

            .down {
                transform: rotate(0deg);
            }

            .up {
                transform: rotate(180deg);
            }
            
            .active{
                background:rgba(116, 185, 255,1.0);
            }

            #nav-title {
                text-align: center;
                font-size: 20px;
                font-weight: 300;
                margin-bottom: 20px;
                background: rgba(45, 52, 54, 1.0);
                color: white;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <nav>
                <div id="nav-title">
                    導(dǎo)航欄
                </div>
                <ul>
                    <li v-for="(item,index) in lists" :key="index">
                        <a @click="preClick(index)" class="pre_menu" :class="cur==index?'active':null" :title="item.name">
                            <span>{{item.name}}</span>
                            <div :class="cur==index?'up':'down'"><svg t="1596169803429" class="icon" viewBox="0 0 1024 1024" version="1.1"
                                 xmlns="http://www.w3.org/2000/svg" p-id="1142">
                                    <path d="M499.8 707.3L219.3 426.8c-10.8-10.8-10.8-28.4 0-39.2 10.8-10.8 28.4-10.8 39.2 0l261.1 261.1 261.1-261.1c10.8-10.8 28.4-10.8 39.2 0 10.8 10.8 10.8 28.4 0 39.2L539.4 707.3c-5.4 5.4-12.6 8.1-19.8 8.1-7.1 0-14.3-2.7-19.8-8.1z"
                                     fill="#263554" p-id="1143"></path>
                                </svg></div>
                        </a>
                        <ul v-show="cur==index">
                            <li v-for="(sub,i) in item.subItems" :key="i">
                                <a class="sub_menu" :title="sub">{{sub}}</a>
                            </li>
                        </ul>
                    </li>
                </ul>

            </nav>
            <main>

            </main>
        </div>
        <script src="../js/vue.js"></script>
        <script type="text/javascript">
            const app = new Vue({
                el: '#app',
                data: {
                    cur: null,
                    lists: [{
                            name: '一級(jí)菜單',
                            subItems: ['二級(jí)菜單', '二級(jí)菜單', '二級(jí)菜單']
                        },
                        {
                            name: '一級(jí)菜單',
                            subItems: ['二級(jí)菜單', '二級(jí)菜單', '二級(jí)菜單']
                        },
                        {
                            name: '一級(jí)菜單',
                            subItems: ['二級(jí)菜單', '二級(jí)菜單', '二級(jí)菜單']
                        },
                        {
                            name: '一級(jí)菜單',
                            subItems: ['二級(jí)菜單', '二級(jí)菜單', '二級(jí)菜單']
                        }
                    ]
                },
                methods: {
                    preClick(index) {
                        this.cur = this.cur == index ? null : index
                    }
                },
                mounted() {}
            })
        </script>
    </body>
</html>

實(shí)現(xiàn)目標(biāo)

1.導(dǎo)航欄點(diǎn)擊打開(kāi)
2.當(dāng)前欄點(diǎn)擊打開(kāi),其他欄關(guān)閉
3.再次點(diǎn)擊當(dāng)前欄萍恕,關(guān)閉
4.右側(cè)圖標(biāo)切換

實(shí)現(xiàn)效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末章郁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子制市,更是在濱河造成了極大的恐慌抬旺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祥楣,死亡現(xiàn)場(chǎng)離奇詭異开财,居然都是意外死亡汉柒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)责鳍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碾褂,“玉大人,你說(shuō)我怎么就攤上這事历葛≌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵啃洋,是天一觀的道長(zhǎng)传货。 經(jīng)常有香客問(wèn)我,道長(zhǎng)宏娄,這世上最難降的妖魔是什么问裕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮孵坚,結(jié)果婚禮上粮宛,老公的妹妹穿的比我還像新娘。我一直安慰自己卖宠,他們只是感情好巍杈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著扛伍,像睡著了一般筷畦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刺洒,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天鳖宾,我揣著相機(jī)與錄音,去河邊找鬼逆航。 笑死鼎文,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的因俐。 我是一名探鬼主播拇惋,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抹剩!你這毒婦竟也來(lái)了撑帖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澳眷,失蹤者是張志新(化名)和其女友劉穎胡嘿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體境蔼,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灶平,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箍土。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逢享。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吴藻,靈堂內(nèi)的尸體忽然破棺而出瞒爬,到底是詐尸還是另有隱情,我是刑警寧澤沟堡,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布侧但,位于F島的核電站,受9級(jí)特大地震影響航罗,放射性物質(zhì)發(fā)生泄漏禀横。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一粥血、第九天 我趴在偏房一處隱蔽的房頂上張望柏锄。 院中可真熱鬧,春花似錦复亏、人聲如沸趾娃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抬闷。三九已至,卻和暖如春耕突,著一層夾襖步出監(jiān)牢的瞬間笤成,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工有勾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疹启,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓蔼卡,卻偏偏與公主長(zhǎng)得像喊崖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雇逞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355