vuejs实现的的竖向tab选项卡

这篇博客展示了如何使用Vue.js实现一个竖向的选项卡功能。通过HTML、CSS和JavaScript,创建了一个包含三个选项卡(tab01、tab02、tab03)的组件,每个选项卡内容可以通过点击对应的选项卡进行切换,切换过程中带有淡入淡出的动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style type="text/css">
        *{padding: 0;margin: 0}
        #tabemplyee{
        	 width: 800px;height: 300px;margin: 0 auto; background-color: #ddd;
        }
        .e_tab{
            height: 100%;line-height: 50px;background-color: #999;padding: 0;
        }
        .e_tab ul li{ display:block;margin:10px 0; width:100%;text-align: center;color: #fff; cursor: pointer;}
        .e_tab ul li a{text-decoration: none;color: #fff;}
        .e_tab_bd{  margin: 3%;}
        .active{
           background-color: #337ab7;
           border-radius: 4px;
        }
        /*切换动画*/
		.fade-transition {
		    transition: opacity 0.3s ease;
		}
		.fade-enter,
		.fade-leave {
		    opacity: 0;
		}
		.fa{
			width: 0;
			height: 0;
			border-top: 25px solid transparent;
			border-right: 25px solid #fff;
			border-bottom: 25px solid transparent;
		}
		.fa2{
		    display:block;
			border-color: transparent #fff transparent transparent;
			border-style: dashed solid dashed dashed;
			border-width: 25px;
		}
    </style>
</head>
<body>
    <div class="row" id="tabemplyee">
        <div class="col-md-2 e_tab">
             <ul class="e_navbar">
                <li class="e_navbar_item"
                    v-for="(tab, index) in tabs"
                    :class="{'active':index===selected}"
                    @click="choose(index)"><i :class="{'fa':index===selected}" style="float:right"></i>{{tab.tabName}}
                 </li>
            </ul>
        </div>
        <div class="col-md-8 e_tab_bd">
            <component :is="currentView" transition="fade" transition-mode="out-in"></component>
        </div>
        
    </div>
    <script type="text/javascript" src='js/vue.js'></script>
    <script>
        var tab01 = Vue.extend({
            template:'<p>This is tab01</p>'
        })
        var tab02 = Vue.extend({
            template:'<p>This is tab02</p>'
        })
        var tab03 = Vue.extend({
            template:'<p>This is tab03</p>'
        })
        var app = new Vue({
            el:'.row',
            data(){
              return{
            	tabs:[
                    {tabName:'tab01'},
                    {tabName:'tab02'},
                    {tabName:'tab03'},
                 ],
                selected:0,
                currentView:'tab_0',
              }
            },
            components:{
                'tab_0':tab01,
                'tab_1':tab02,
                'tab_2':tab03
            },
            methods:{
               choose(index) {
                   this.selected=index;
                   this.currentView='tab_'+index;
               }
            }
        })
    </script>
    <script type="text/javascript" src="js/jquery-2.2.1.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值