这里不跟大家再去把Vue文档上的一些指令用法或者基础知识再复述一遍,既然是从入门到实战,我直接将平时项目中需要实现的一些效果拆分成模块。你们遇到了相关的指令或者不知道怎么用的方法自己对着文档去查,再回过头来看我的实现代码。记住,通读Vue文档真的很重要,很重要!
这里的Vue以单文件的形式引入,另外代码在实现上会一步步的进行优化,客官不要着急!
下面是一个样式稍微丑陋,但功能OK的选项卡。
!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" li v-for="(tab,index) in tabsName" a href="#" rel="external nofollow" @click="tabsSwitch(index)" v-bind: {{tab.name}} /a /li /ul div div 这里是HTML教程 /div div 欢迎来到CSS模块 /div div 嗨,这里是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
第一代选项卡的实现就先这样子,后面再改进。上面是代码,下面是效果图!Vue我也只是刚刚学入门吧,做了几个项目了,有什么问题我们可以一起探讨,一起进步,欢迎私信我!
Vue实现选项卡切换,具体代码如下所示:
!DOCTYPE html html lang="en" head meta charset="UTF-8" title 选项卡 /title script src="../js/vue.js" /script style list-style: none; float: left; margin-right: 20px; /style /head body div li v-for="(item,index) in list" @click="tab(index)" {{item.tab}} div v-show="item.show" {{item.title}} /div /li /ul /div script let obj=[ {"tab":"选项一","show":true,"title":"1111"}, {"tab":"选项二","show":false,"title":"2222"}, {"tab":"选项三","show":false,"title":"3333"} var vm=new Vue({ el:".app", data:{ list:obj methods:{ tab:function(index){ for(var i=0;i this.list.length;i++){ this.list[i].show=false; if(i==index){ this.list[index].show=true; /script /body /html
总结
以上所述是小编给大家介绍的vue实现选项卡及选项卡切换效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对凡科网站的支持!