vue結合elementUI折疊展開效果動畫


組件

<template>
    <div class="hide-page-com">
        <ul class="tab-tilte">
            <li
                v-for="(title,index) in tabTitle"
                :key="index"
                @click="getclcik(index)"
                class="menu-li"
                :class="{active:cur==index}"
            >{{title}}</li>
            <div class="right-part">
                <i @click="handlerThe" class="icon-folding iconfont"></i>
            </div>
        </ul>
        <el-collapse-transition>
            <div v-if="show3" class="cont-cont">
                <p v-for="item in  5" class="item-list-cont">1211111111111111111111111111111111</p>
            </div>
        </el-collapse-transition>
    </div>
</template>

<script>
export default {
    data() {
        return {
            tabTitle: ['標題一', '標題二', '標題三', '標題四'],
            cur: 0, //默認選中第一個tab
            show3: true
        }
    },
    methods: {
        getclcik(value) {
            this.cur = value;
        },

        handlerThe() {
            this.show3 = !this.show3;
        }
    }
}
</script>

<style lang="scss" scoped>
.hide-page-com {
    background: #ffffff;
    border-radius: 10px;
}
.tab-tilte {
    display: flex;
    height: 56px;
    align-items: center;
    padding-left: 24px;
}

.menu-li {
    padding: 10px 0;
    text-align: center;
    cursor: pointer;
    margin-right: 28px;
}

/* 點擊對應的標題添加對應的背景顏色 */
.active {
    color: #09f;
    border-bottom: 2px solid #09f;
}

.tab-content div {
    line-height: 100px;
    text-align: center;
}

.right-part {
    flex: 1;//右邊區域自動適應
    text-align: right;
    padding-right: 20px;
}

.cont-cont {
    padding-left: 24px;
    padding-right: 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    .item-list-cont {
        height: 36px;
        line-height: 36px;
    }
}
// 兩個模塊各占50%(重點)
// 如果想讓兩個模塊中間有間距  直接最后一個模塊 margin-left: 20px;(了解)
</style>

使用頁面
<template>
    <div class="index-page">
        <div class="flex-block">
            <div class="half">
                <com-box></com-box>
            </div>

            <div class="half lefthale">
                <com-box></com-box>
            </div>
        </div>
    </div>
</template>

<script>
export default {
    data() {
        return {

        }
    },

    components: {
        'com-box': () => import('./com')
    }
}
</script>

<style lang="scss" scoped>
.index-page {
    height: 100%;
    background: #ccc;
    .flex-block {
        display: flex;
    }
    .half {
        width: 50%;
    }
    .lefthale {
        margin-left: 20px;
    }
}
</style>
動畫使用了elementUi中的。
collapse 展開折疊
使用 el-collapse-transition 組件實現折疊展開效果。

我疑惑的是為啥組件中沒有互相影響。
我點擊左邊的 應該會影響右邊的組件啊
但是卻沒有 不曉得為啥子


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM