91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中transition標簽如何使用

發布時間:2022-08-26 11:29:35 來源:億速云 閱讀:193 作者:iii 欄目:開發技術

這篇文章主要講解了“Vue中transition標簽如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue中transition標簽如何使用”吧!

    transition 標簽

    transition 標簽:Vue 的內置動畫標簽

    作用:在 [插入] / [更新] / [移除] DOM 元素時,在合適的時候給元素添加樣式類名(配合 CSS 樣式使用,實現動畫效果)

    注意事項

    transition 標簽只能包含 1 個元素;如果里面寫了多個元素,則只生效第一個

    transition 包裹的標簽需要設置 v-show / v-if 屬性控制元素的顯示

    動畫 CSS 樣式對應的類名

    進入:.v-enter 始狀態、.v-enter-to 末狀態、.v-enter-active 進入動畫(Vue2)

    離開:.v-leave 始狀態、.v-leave-to 末狀態、.v-leave-active 離開動畫(Vue2)

    進入:.v-enter-from 始狀態、.v-enter-to 末狀態、.v-enter-active 進入動畫(Vue3)

    離開:.v-leave-from 始狀態、.v-leave-to 末狀態、.v-leave-active 離開動畫(Vue3)

    配合 animation

    <template>
        <div>
            <button @click="bol = !bol">隱藏/顯示</button>
            <!-- Vue 的內置動畫標簽 transition -->
            <transition>
                <!-- 只能包含 1 個元素 -->
                <h2 v-show="bol">組件動畫效果</h2>
                <!-- 需要設置 v-show / v-if 屬性控制元素的顯示 -->
            </transition>
        </div>
    </template>
    
    <script>
    export default {
        name: "App",
        data() {
            return { bol: true };
        },
    };
    </script>
    
    <style>
    /* 進入動畫 */
    .v-enter-active {
        animation: move 1s;
    }
    
    /* 離開動畫 */
    .v-leave-active {
        animation: move 1s reverse;
    }
    
    @keyframes move {
        from {
            transform: translateX(-100%);
        }
        to {
            transform: translate(0);
        }
    }
    </style>
    transition 標簽的屬性

    1、name 屬性:用于自動生成 CSS 動畫類名

    如果 transition 標簽元素沒有設置 name 屬性,則對應的動畫類名為 v-XXX

    如果設置了 name 屬性,則對應的動畫類名為 屬性值-XXX

    2、appear 屬性:一開始就生效顯示動畫

    <template>
        <div>
            <button @click="bol = !bol">隱藏/顯示</button>
            <!-- transition 標簽元素設置了 name、appear 屬性 -->
            <transition name="moveCartoon" appear>
                <!-- 動畫會在一開始便生效 -->
                <h2 v-show="bol">組件動畫效果</h2>
            </transition>
        </div>
    </template>
    
    <script>
    export default {
        name: "App",
        data() {
            return { bol: true };
        },
    };
    </script>
    
    <style>
    /* 類名要對應回 name 的屬性值 */
    .moveCartoon-enter-active {
        animation: move 1s;
    }
    .moveCartoon-leave-active {
        animation: move 1s reverse;
    }
    
    @keyframes move {
        from {
            transform: translateX(-100%);
        }
        to {
            transform: translate(0);
        }
    }
    </style>

    當存在多個 tansition 標簽時,我們可以通過 name 屬性給各個 transition 標簽指定不同的 CSS 動畫效果

    配合 transition

    <template>
        <div id="app">
            <button @click="bol = !bol">隱藏/顯示</button>
            <transition appear>
                <h2 v-show="bol">組件動畫</h2>
            </transition>
        </div>
    </template>
    
    <script>
    export default {
        name: "App",
        data() {
            return { bol: true };
        },
    };
    </script>
    
    <style>
    /* 進入:始狀態 */
    .v-enter {
        transform: translateX(-100%);
    }
    /* 進入:末狀態 */
    .v-enter-to {
        transform: translateX(0);
    }
    /* 進入動畫 */
    .v-enter-active {
        transition: 1s;
    }
    
    /* 離開:始狀態 */
    .v-leave {
        transform: translateX(0);
    }
    /* 離開:末狀態 */
    .v-leave-to {
        transform: translateX(-100%);
    }
    /* 離開動畫 */
    .v-leave-active {
        transition: 1s;
    }
    </style>

    也可以將 transition: 1s; 設置到標簽上,就不用寫 v-leave-activev-enter-active 對應的樣式了

    h2 {
        transition: 1s;
    }
    
    /* 進入:始位置 */
    .v-enter {
        transform: translateX(-100%);
    }
    /* 進入:末位置 */
    .v-enter-to {
        transform: translateX(0);
    }
    
    /* 離開:始位置 */
    .v-leave {
        transform: translateX(0);
    }
    /* 離開:末位置 */
    .v-leave-to {
        transform: translateX(-100%);
    }

    transition-group 標簽

    • transition 標簽只能包含 1 個元素、 transition-group 標簽可以包含多個元素

    • transition-group 標簽里面的元素需要設置 key 屬性,作為當前元素的唯一標識

    • 除此之外,其他用法都和 transition 標簽一樣

    <template>
        <div id="app">
            <button @click="isEditing = !isEditing">切換</button>
            <transition-group appear>
                <h2 v-if="isEditing" key="save">Save</h2>
                <h2 v-if="!isEditing" key="edit">Edit</h2>
            </transition-group>
        </div>
    </template>
    
    <script>
    export default {
        name: "App",
        data() {
            return { isEditing: true };
        },
    };
    </script>
    
    <style>
    h2 {
        transition: 0.5s;
        position: absolute;
    }
    .v-leave {
        opacity: 1;
    }
    .v-leave-to {
        opacity: 0;
    }
    .v-enter {
        opacity: 0;
    }
    .v-enter-to {
        opacity: 1;
    }
    </style>

    如果只有兩個元素,也可以給一個元素的 key 設置不同的狀態來代替 v-ifv-else,上面的例子可以重寫為:

    <transition>
        <h2 :key="isEditing">
            {{ isEditing ? "Save" : "Edit" }}
        </h2>
    </transition>

    動畫庫 animate.css

    1. 下載:npm install animate.css

    2. 引入樣式庫:import "animate.css"

    3. 給指定的 transition 標簽添加 name 屬性 animate_animate、animate__bounce

    4. 配置 enter-active-class 屬性,指定進入動畫:
      在樣式庫中挑一個進入的樣式值,作為 enter-active-class 屬性值

    5. 配置 leave-active-class 屬性,指定退出動畫:
      在樣式庫中挑一個退出的樣式值,作為 leave-active-class 屬性值

    <template>
        <div>
            <button @click="bol = !bol">隱藏 / 顯示</button>
            <transition
                name="animate__animated animate__bounce"
                enter-active-class="animate__bounceIn"
                leave-active-class="animate__bounceOut"
            >
                <h2 v-show="bol">動畫庫的使用</h2>
            </transition>
        </div>
    </template>
    
    <script>
    import "animate.css"; // 引入樣式庫
    export default {
        name: "App",
        data() {
            return { bol: true };
        },
    };
    </script>

    感謝各位的閱讀,以上就是“Vue中transition標簽如何使用”的內容了,經過本文的學習后,相信大家對Vue中transition標簽如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    墨脱县| 青阳县| 西藏| 巨野县| 伊川县| 湘潭县| 商河县| 西林县| 平湖市| 定州市| 酒泉市| 临海市| 大化| 苍山县| 宁河县| 涪陵区| 普兰店市| 绥江县| 星子县| 扶绥县| 东乌| 阿克苏市| 新建县| 临桂县| 大姚县| 探索| 铜山县| 灌云县| 贵溪市| 东阳市| 吴江市| 包头市| 宝山区| 清河县| 肃南| 津南区| 前郭尔| 江孜县| 潍坊市| 莫力| 资溪县|