vue组件开发之tab切换组件

21 篇文章 0 订阅

这里写图片描述

<template>
    <div class="tab-slider">
        <div class="tab">
            <span v-for="(item, index) in items" v-bind:class="{active: actived == index}" @click="toggle(index)">{{item.tab}}</span>
        </div>
        <div class="tab-content">
            <div class="wrapbox clearboth">
                <div class="item" v-for="(item, index) in items">{{item.tabContent}}</div>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
        name: 'tabSlider',
        data (){
            return {
                actived: 0,
                items: [{
                    'tab': 'tab1',
                    'tabContent': 'content1'
                },{
                    'tab': 'tab2',
                    'tabContent': 'content2'
                },{
                    'tab': 'tab3',
                    'tabContent': 'content3'
                },{
                    'tab': 'tab4',
                    'tabContent': 'content4'
                }]
            }
        },
        methods: {
            //获取图片base64实现预览
            toggle(index){
                this.actived = index;                          
                document.querySelector(".tab-content .wrapbox").style.webkitTransform = "translateX(-" + (this.actived * 400) + "px)";

            }
           
        }
    }
</script>
<style scoped>
    *{margin:0 auto;padding:0;font-family:"微软雅黑";}
    .clearboth::after{
        content:"";
        display:block;
        clear:both;
    }
    .tab-slider{
        height:auto;
        width:400px;
        margin:50px auto;
    }
    .tab-slider .tab{
        display:flex;
        height:40px;
        line-height:40px;
        background:#ccc;
    }
    .tab-slider .tab span{
        display:block;
        width:100%;
        text-align:center;
        cursor:default;
    }
    .tab-slider .tab .active{
        background:red;
    }
    .tab-slider .tab-content{
        height:300px;
        width:400px;
        overflow:hidden;
    }
    .tab-slider .tab-content .item{
        float:left;
        height:300px;
        width:400px;
        line-height:300px;
        text-align:center;
        font-size:60px;
        background:#eee;
    }
    .tab-slider .wrapbox{
        width:2000px;
        transition: all 1s;
    }
</style>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值