亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3之列表動畫和狀態(tài)動畫示例詳解

 更新時間:2023年04月04日 15:47:31   作者:時光劍客  
這篇文章主要為大家介紹了Vue3之列表動畫和狀態(tài)動畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

概述

列表動畫和狀態(tài)動畫都是增加用戶體驗的方法,當(dāng)一個列表添加數(shù)據(jù)或者移除數(shù)據(jù)時,如果直接添加,突然顯示,未免有些突兀,而且用戶可能會不知道此時已經(jīng)有數(shù)據(jù)加入了,從列表中移除數(shù)據(jù)也是,用戶很有可能不知道當(dāng)前已經(jīng)移除了哪一條數(shù)據(jù)。但是如果加上動畫就會好很多了,有趣的動畫可以吸引用戶的注意力,讓用戶關(guān)注新增和移除的數(shù)據(jù)。這就是列表動畫,而狀態(tài)動畫是指從一個狀態(tài)到另一個狀態(tài)的變化,如果直接變過去,就會顯得比較生硬,但是如果是加了動畫慢慢過渡過去會好很多。

示例解析

列表動畫

如上圖所示我們要展示一個數(shù)字構(gòu)成的列表,右面有一個按鈕,點擊按鈕會執(zhí)行一個動畫增加數(shù)字。代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>列表動畫</title>
    <style>
        .list-item{
            display: inline-block;
            margin-right: 10px;
        }
        .v-enter-from{
            opacity: 0;
            transform: translateY(30px);
        }
        .v-enter-active{
            transition: all 1s ease-in;
        }
        .v-enter-to{
            opacity: 1;
            transform: translateY(0px);
        }
        .v-move{
            transition: 2.5s ease-in;
        }
    </style>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
 const app = Vue.createApp({
        data() {
            return {
               list:[1,2,3]
            }
        },
        methods: {
            handleClick(){
               this.list.unshift(this.list.length+1);
            }
        },
        template: 
        `
            <div>
                <transition-group>
                <span class="list-item" v-for = "item in list" :key="item">{{item}}</span>
                </transition-group>
                <button @click="handleClick">add</button> 
            </div>
        `
    });
    const vm = app.mount('#root');
</script>

我們先是使用CSS將列表的動畫效果定義出來,這個效果和之前講的動畫定義差不多,這里不過多贅述,定義好動畫后,我們在Vue的template中使用一個span將我們的數(shù)字列表顯示出來,然后最關(guān)鍵的是我們要使用 <transition-group>標(biāo)簽將我們要做動畫的部分包裹起來。當(dāng)我們點擊按鈕的時候,執(zhí)行js函數(shù)往列表中新增一個列表長度加一的數(shù)。動畫效果讀者可以,運行查看。

狀態(tài)動畫

狀態(tài)動畫比較簡單,就是從一個狀態(tài)到另一個狀態(tài)中間加一些過渡的值,主要是通過數(shù)據(jù)控制內(nèi)容的展示,比如從1變到10,如果直接1馬上變成10,則顯得很生硬,但是中間加一寫其他數(shù)字,比如2,3,4...最后再變成10就會好很多,代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>狀態(tài)動畫</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
    // 狀態(tài)動畫:通過數(shù)據(jù)控制內(nèi)容的展示
 const app = Vue.createApp({
        data() {
            return {
               number:1,
               animateNumber: 1
            }
        },
        methods: {
            handleClick(){
                this.number =10;
                if(this.animateNumber<this.number){
                const animation =  setInterval(()=>{
                this.animateNumber += 1;
                    if(this.animateNumber === 10){
                    clearInterval(animation)
                     }
               },100);
               }
            }
        },
        template: 
        `
            <div>
                <div>{{animateNumber}}</div>
                <button @click="handleClick">do</button>  
            </div>
        `
    });
    const vm = app.mount('#root');
</script>

列表動畫比較簡單,我們點擊執(zhí)行按鈕的時候,使用js函數(shù)每隔100 毫秒就去修改一下當(dāng)前顯示的值,直到值變成最終想要狀態(tài)的值就停止。

總結(jié)

列表動畫和狀態(tài)動畫都是為了增強用戶體驗,列表動畫主要是在列表中的數(shù)據(jù)變化的時候執(zhí)行的,而狀態(tài)動畫主要是當(dāng)一個狀態(tài)更換到零一個狀態(tài)的時候執(zhí)行,列表動畫通過vue提供的<transition-group>標(biāo)簽包裹需要執(zhí)行動畫的部分實現(xiàn),而列表動畫通過控制數(shù)據(jù)內(nèi)容的展示實現(xiàn),本文介紹的都是簡單的動畫效果,讀者若需要實現(xiàn)更炫麗的動畫效果,請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue?webpack的基本使用示例教程

    Vue?webpack的基本使用示例教程

    這篇文章主要介紹了Vue?webpack的基本使用,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用)

    vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用)

    這篇文章主要介紹了vue+canvas實現(xiàn)炫酷時鐘效果的倒計時插件(已發(fā)布到npm的vue2插件,開箱即用) ,需要的朋友可以參考下
    2018-11-11
  • Vue實現(xiàn)剪切板圖片壓縮功能

    Vue實現(xiàn)剪切板圖片壓縮功能

    這篇文章主要介紹了Vue實現(xiàn)剪切板圖片壓縮功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • vue子組件created方法不執(zhí)行問題及解決

    vue子組件created方法不執(zhí)行問題及解決

    這篇文章主要介紹了vue子組件created方法不執(zhí)行問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue3.0數(shù)據(jù)響應(yīng)式原理詳解

    Vue3.0數(shù)據(jù)響應(yīng)式原理詳解

    這篇文章主要介紹了Vue3.0數(shù)據(jù)響應(yīng)式原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue通過定時器實現(xiàn)垂直滾動公告

    vue通過定時器實現(xiàn)垂直滾動公告

    這篇文章主要為大家詳細(xì)介紹了vue通過定時器實現(xiàn)垂直滾動公告,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue配置環(huán)境變量的正確打開方式

    Vue配置環(huán)境變量的正確打開方式

    這篇文章主要為大家介紹了Vue配置環(huán)境變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • vue.js基于ElementUI封裝了CRUD的彈框組件

    vue.js基于ElementUI封裝了CRUD的彈框組件

    這篇文章主要介紹了vue.js基于ElementUI封裝了CRUD的彈框組件,問咋會給你圍繞主題展開詳細(xì)的內(nèi)容介紹,感興趣的小伙伴可以參考一下
    2022-07-07
  • 使用vue實現(xiàn)grid-layout功能實例代碼

    使用vue實現(xiàn)grid-layout功能實例代碼

    這篇文章主要介紹了使用vue實現(xiàn)grid-layout功能的代碼講解,需要的朋友可以參考下
    2018-01-01
  • vue2之vue.config.js最全配置教程

    vue2之vue.config.js最全配置教程

    本文主要介紹了vue2之vue.config.js最全配置教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論