Vue入門(一)-Vue實現選項卡效果
阿新 • • 發佈:2019-01-30
鑑於程式碼有些年代,且當時實現方式很不好,遭到了眾多噴子的人身攻擊,此文章終結,不必浪費大家時間了。
------------------------------------------------------此文終結----------------------------------------------------
這裡不跟大家再去把Vue文件上的一些指令用法或者基礎知識再複述一遍,既然是從入門到實戰,我直接將平時專案中需要實現的一些效果拆分成模組。你們遇到了相關的指令或者不知道怎麼用的方法自己對著文件去查,再回過頭來看我的實現程式碼。記住,通讀Vue文件真的很重要,很重要!
這裡的Vue以單檔案的形式引入,另外程式碼在實現上會一步步的進行優化,客官不要著急!
下面是一個樣式稍微醜陋,但功能OK的選項卡。
第一代選項卡的實現就先這樣子,後面再改進。上面是程式碼,下面是效果圖!Vue我也只是剛剛學入門吧,做了幾個專案了,有什麼問題我們可以一起探討,一起進步,歡迎私信我!<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width"> <meta name="apple-mobile-web-app-title" content="Vue選項卡"> <title>Vue實現選項卡</title> <script type="text/javascript" src="../js/vue.js"></script> </head> <style> * { padding: 0; margin: 0; } .box { width: 800px; height: 200px; margin: 0 auto; border: 1px solid #000; } .tabs li { float: left; margin-right: 8px; list-style: none; } .tabs .tab-link { display: block; width: 250px; height: 49px; text-align: center; line-height: 49px; background-color: #5597B4; color: #fff; text-decoration: none; } .tabs .tab-link.active { height: 47px; border-bottom: 2px solid #E35885; transition: .3s; } .cards { float: left; } .cards .tab-card { display: none; } .clearfix:after { content: ""; display: block; height: 0; clear: both; } .clearfix { zoom: 1; } </style> <body> <div id="app" class="box"> <ul class="tabs clearfix"> <li v-for="(tab,index) in tabsName"> <a href="#" class="tab-link" @click="tabsSwitch(index)" v-bind:class="{active:tab.isActive}">{{tab.name}}</a> </li> </ul> <div class="cards"> <div class="tab-card" style="display: block;">這裡是HTML教程</div> <div class="tab-card">歡迎來到CSS模組</div> <div class="tab-card">嗨,這裡是Vue</div> </div> </div> </body> <script> var app = new Vue({ el: "#app", data: { tabsName: [{ name: "HTML", isActive: true }, { name: "CSS", isActive: false }, { name: "Vue", isActive: false }], active: false }, methods: { tabsSwitch: function(tabIndex) { var tabCardCollection = document.querySelectorAll(".tab-card"), len = tabCardCollection.length; for(var i = 0; i < len; i++) { tabCardCollection[i].style.display = "none"; this.tabsName[i].isActive = false; } this.tabsName[tabIndex].isActive = true; tabCardCollection[tabIndex].style.display = "block"; } } }) </script> </html>