最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

概述

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

示例解析

列表動(dòng)畫

如上圖所示我們要展示一個(gè)數(shù)字構(gòu)成的列表,右面有一個(gè)按鈕,點(diǎn)擊按鈕會(huì)執(zhí)行一個(gè)動(dòng)畫增加數(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>列表動(dòng)畫</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將列表的動(dòng)畫效果定義出來(lái),這個(gè)效果和之前講的動(dòng)畫定義差不多,這里不過(guò)多贅述,定義好動(dòng)畫后,我們?cè)赩ue的template中使用一個(gè)span將我們的數(shù)字列表顯示出來(lái),然后最關(guān)鍵的是我們要使用 <transition-group>標(biāo)簽將我們要做動(dòng)畫的部分包裹起來(lái)。當(dāng)我們點(diǎn)擊按鈕的時(shí)候,執(zhí)行js函數(shù)往列表中新增一個(gè)列表長(zhǎng)度加一的數(shù)。動(dòng)畫效果讀者可以,運(yùn)行查看。

狀態(tài)動(dòng)畫

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

<!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)動(dòng)畫</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
    // 狀態(tài)動(dòng)畫:通過(guò)數(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>

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

總結(jié)

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

相關(guān)文章

  • vue使用smooth-signature實(shí)現(xiàn)移動(dòng)端橫豎屏電子簽字

    vue使用smooth-signature實(shí)現(xiàn)移動(dòng)端橫豎屏電子簽字

    這篇文章主要為大家介紹了vue使用smooth-signature實(shí)現(xiàn)移動(dòng)端橫豎屏電子簽字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Vue3配置代理后頁(yè)面500/404問(wèn)題

    Vue3配置代理后頁(yè)面500/404問(wèn)題

    這篇文章主要介紹了Vue3配置代理后頁(yè)面500/404問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 14個(gè)Vue中易被攻擊的代碼位置小結(jié)

    14個(gè)Vue中易被攻擊的代碼位置小結(jié)

    在?Vue?框架中,哪些地方容易被攻擊呢?寫代碼的時(shí)候要注意什么呢?這篇文章中小編為大家總結(jié)了一些常見(jiàn)的容易受到攻擊的地方,希望對(duì)大家有所幫助
    2024-02-02
  • vue項(xiàng)目打包之后接口出現(xiàn)錯(cuò)誤的問(wèn)題及解決

    vue項(xiàng)目打包之后接口出現(xiàn)錯(cuò)誤的問(wèn)題及解決

    這篇文章主要介紹了vue項(xiàng)目打包之后接口出現(xiàn)錯(cuò)誤的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue導(dǎo)出excel的兩個(gè)常用方式介紹與對(duì)比

    Vue導(dǎo)出excel的兩個(gè)常用方式介紹與對(duì)比

    這篇文章主要為大家詳細(xì)介紹了Vue導(dǎo)出excel的兩個(gè)常用方式,分別為前端vue+XLSX導(dǎo)出excel和vue+后端POI?導(dǎo)出excel,感興趣的小伙伴可以了解下
    2025-01-01
  • Vue.js組件通信的幾種姿勢(shì)

    Vue.js組件通信的幾種姿勢(shì)

    組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼。下面通過(guò)本文給大家分享Vue.js組件通信的幾種姿勢(shì),感興趣的朋友一起看看吧
    2017-10-10
  • 詳解elementUI中input框無(wú)法輸入的問(wèn)題

    詳解elementUI中input框無(wú)法輸入的問(wèn)題

    這篇文章主要介紹了詳解elementUI中input框無(wú)法輸入的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • vue3?api自動(dòng)導(dǎo)入神器推薦

    vue3?api自動(dòng)導(dǎo)入神器推薦

    在做vue3項(xiàng)目中時(shí),每次使用都需要先進(jìn)行引入,下面這篇文章主要給大家介紹了關(guān)于vue3?api自動(dòng)導(dǎo)入的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • vue.js中v-on:textInput無(wú)法執(zhí)行事件問(wèn)題的解決過(guò)程

    vue.js中v-on:textInput無(wú)法執(zhí)行事件問(wèn)題的解決過(guò)程

    大家都知道vue.js通過(guò)v-on完成事件處理與綁定,但最近使用v-on的時(shí)候遇到了一個(gè)問(wèn)題,所以下面這篇文章主要給大家介紹了關(guān)于vue.js中v-on:textInput無(wú)法執(zhí)行事件問(wèn)題的解決過(guò)程,需要的朋友可以參考下。
    2017-07-07
  • Vue中的變量賦值問(wèn)題

    Vue中的變量賦值問(wèn)題

    這篇文章主要介紹了Vue中的變量賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

英超| 蒲江县| 泰安市| 葫芦岛市| 镇巴县| 桃江县| 普安县| 永康市| 唐河县| 泗水县| 武夷山市| 铅山县| 宝山区| 自治县| 孟津县| 新干县| 大同县| 苗栗市| 日照市| 寿宁县| 乐都县| 淮阳县| 萍乡市| 永德县| 鄂尔多斯市| 呼图壁县| 金乡县| 延长县| 开远市| 张家口市| 巩义市| 沾化县| 南岸区| 定日县| 阜平县| 金山区| 蕉岭县| 灌阳县| 曲靖市| 邵东县| 连平县|