vue实现标题导航,tab选项卡(一看就会)

效果图:

代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="GBK">
        <title></title>
        <style>
        ul li {

            margin: 0;
            padding: 0;
            list-style: none;
        }
        #app {
            width: 600px;
            height: 400px;
            margin: 0 auto;
            border: 1px solid #ccc;
        }
        .tab-tilte{
            width: 90%;
        }
        .tab-tilte li{
            float: left;
            width: 25%;
            padding: 10px 0;
            text-align: center;
            background-color:#f4f4f4;
            cursor: pointer;
        }
     /* 点击对应的标题添加对应的背景颜色 */
        .tab-tilte .active{
            background-color: #09f;
            color: #fff;
        }
        .tab-content div{
            float: left;
            width: 99%;
            line-height: 100px;
            text-align: center;
            font-size: 30px;
        }
        	
        </style>
    </head>
    <body>
    	<div id="app" >
		    <ul class="tab-tilte">
		        <li v-for="(t,index) in tabTitle" @click="tab(index)" :class="t.check?'active':''">{{t.name}}</li>
		    </ul>
		    <div class="tab-content">
		        <div v-for="(m,index) in tabMain" v-show="cur==index">{{m}}</div>
		    </div>
		</div> 
    </body>
 	<script src="vue.js"></script>
 	<script>
         new Vue({
            el:'#app',
            data:{
                tabTitle: [{name:'标题一',check:true}, {name:'标题二',check:false}, {name:'标题三',check:false}, {name:'标题四',check:false}],
                tabMain: ['这是内容一', '这是内容二', '这是内容三', '这是内容四'],
                cur: 0 //默认选中第一个tab
            },
            methods:{
            	tab:function(index){
            		this.cur=index;//根据传入的index设置到cur,cur是控制显示哪个content
            		var tabTitle= this.tabTitle;
            		for(var i=0;i<tabTitle.length;i++){
            			var tab = tabTitle[i];
            			if(index===i){//当前点击的选中
            				tab.check=true;
            			}else{//其他的不选中
            				tab.check=false;
            			}
            		}	
            	}
            }
        })
 	</script>	
		
</html>

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以通过以下步骤使用vue2脚手架实现tab选项卡: 1. 在父组件中定义一个数组tabs,包含选项卡标题和内容: ```javascript data() { return { tabs: [ { title: '选项卡1', content: '内容1' }, { title: '选项卡2', content: '内容2' }, { title: '选项卡3', content: '内容3' } ], activeTab: 0 } } ``` 2. 在模板中使用v-for指令渲染选项卡标题,并绑定click事件,将索引赋值给activeTab: ```html <template> <div> <div class="tabs"> <div v-for="(tab, index) in tabs" :key="index" :class="{ active: activeTab === index }" @click="activeTab = index">{{ tab.title }}</div> </div> <div class="tab-content">{{ tabs[activeTab].content }}</div> </div> </template> ``` 3. 根据activeTab的值显示对应选项卡的内容。可以使用计算属性实现: ```javascript computed: { activeContent() { return this.tabs[this.activeTab].content } } ``` 4. 根据需要自定义样式即可实现tab选项卡效果。 完整代码示例: ```html <template> <div> <div class="tabs"> <div v-for="(tab, index) in tabs" :key="index" :class="{ active: activeTab === index }" @click="activeTab = index">{{ tab.title }}</div> </div> <div class="tab-content">{{ activeContent }}</div> </div> </template> <script> export default { data() { return { tabs: [ { title: '选项卡1', content: '内容1' }, { title: '选项卡2', content: '内容2' }, { title: '选项卡3', content: '内容3' } ], activeTab: 0 } }, computed: { activeContent() { return this.tabs[this.activeTab].content } } } </script> <style> .tabs { display: flex; justify-content: space-between; border-bottom: 1px solid #ccc; margin-bottom: 10px; } .tabs div { padding: 10px; cursor: pointer; } .tabs div.active { border-bottom: 2px solid #333; } .tab-content { padding: 10px; } </style> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程界小明哥

请博主喝瓶水,博主持续输出!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值