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

Vue3之使用js實(shí)現(xiàn)動(dòng)畫示例解析

 更新時(shí)間:2023年04月04日 16:40:50   作者:時(shí)光劍客  
這篇文章主要為大家介紹了Vue3之使用js實(shí)現(xiàn)動(dòng)畫示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

概述

動(dòng)畫的實(shí)現(xiàn)其實(shí)不僅可以使用CSS的方式實(shí)現(xiàn),而且還可以使用js的方式實(shí)現(xiàn),二者有啥區(qū)別呢?CSS更加注重動(dòng)畫的展現(xiàn),性能更好,而js的方式性能稍微差點(diǎn),但是可以在動(dòng)畫執(zhí)行的每一個(gè)過程中做些額外的操作。也就是說動(dòng)畫執(zhí)行的開始-執(zhí)行中-結(jié)束這個(gè)過程,如果使用CSS來做,最多也就是控制下動(dòng)畫的屬性啥的,只是為了展示動(dòng)畫。而使用js的方式,我們可以在動(dòng)畫執(zhí)行開始時(shí),操作dom元素,加我們想要的效果啥的,動(dòng)畫執(zhí)行結(jié)束時(shí)我們可以做一些動(dòng)畫結(jié)束的操作,比如彈個(gè)對(duì)話框啥的。這些使用js實(shí)現(xiàn) 都會(huì)比較方便。

實(shí)例解析

假設(shè)我們要實(shí)現(xiàn)一個(gè)效果:讓“hello world”的字體顏色在紅色和綠色之間一秒改變一次,5秒后結(jié)束,然后結(jié)束后彈出一個(gè)對(duì)話框,展示一段內(nèi)容,代碼如下:

<!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>使用JS實(shí)現(xiàn)動(dòng)畫</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="root"></div>
</body>
<script>
 const app = Vue.createApp({
        data() {
            return {
                show:false
            }
        },
        methods: {
            handleClick(){
                this.show = !this.show;
            },
            handleBeforeEnter(el){
                el.style.color = 'red';
            },
            handleEnterActive(el, done){
             const animation = setInterval(() => {
                    const color = el.style.color;
                    if(color === 'red'){
                        el.style.color = 'green';
                    }else{
                        el.style.color  = 'red';
                    }
                },1000);
                setTimeout(() =>{
                    clearInterval(animation);
                    done();// 通知下一個(gè)函數(shù)的執(zhí)行
                },5000);
            },
            handleEnterEnd(){
                alert(123);
            }
        },
        template: 
        `
        	<transition
        		:css="false"
       		 @before-enter="handleBeforeEnter"
             @enter="handleEnterActive"
             @after-enter="handleEnterEnd">
              <div v-if="show" >hello world </div>
          </transition>
          <button @click="handleClick">switch</button>
        `
    });
    const vm = app.mount('#root');
</script>
</html>

從上面的代碼中我們可以看到,在transition標(biāo)簽中我們使用了:css = "false" 這是因?yàn)槲覀円褂胘s做動(dòng)畫,所以要先禁用掉css,然后分別實(shí)現(xiàn)了@before-enter="handleBeforeEnter", @enter="handleEnterActive" ,@after-enter 分別對(duì)應(yīng)動(dòng)畫開始前,動(dòng)畫執(zhí)行中,動(dòng)畫執(zhí)行結(jié)束,而后面的handleBeforeEnter,handleEnterActive,handleEnterEnd三個(gè)函數(shù)是對(duì)應(yīng)三個(gè)階段的js函數(shù),我們可以在這幾個(gè)函數(shù)中執(zhí)行我們想要執(zhí)行的操作。在本例中:

handleBeforeEnter(el)
{
   el.style.color = 'red';
}

動(dòng)畫執(zhí)行前我們將文本的顏色設(shè)置成紅色

當(dāng)動(dòng)畫執(zhí)行的時(shí)候

handleEnterActive(el, done){
             const animation = setInterval(() => {
                    const color = el.style.color;
                    if(color === 'red'){
                        el.style.color = 'green';
                    }else{
                        el.style.color  = 'red';
                    }
                },1000);
                setTimeout(() =>{
                    clearInterval(animation);
                    done();// 通知下一個(gè)函數(shù)的執(zhí)行
                },5000);
            }

動(dòng)畫執(zhí)行的時(shí)候,我們隔1秒去判斷當(dāng)前文本的顏色,如果是紅色,則改成綠色,如果是綠色則改成紅色,然后持續(xù)5秒結(jié)束。

當(dāng)動(dòng)畫結(jié)束的時(shí)候

handleEnterEnd(){
     alert(123);
}

動(dòng)畫結(jié)束后,會(huì)執(zhí)行handleEnterEnd,然后彈出一個(gè)對(duì)話框,顯示123.

總結(jié)

以上就是使用js實(shí)現(xiàn)動(dòng)畫的內(nèi)容,本文只是簡(jiǎn)單的介紹了使用js做動(dòng)畫的基本知識(shí),讀者可以去自己動(dòng)手實(shí)踐一下,體會(huì)一下使用CSS和js實(shí)現(xiàn)的動(dòng)畫的不同,并對(duì)比出他們使用的場(chǎng)景,然后歡迎大家在評(píng)論區(qū)交流,本文的目的也在于拋磚引玉,更多關(guān)于Vue3使用js實(shí)現(xiàn)動(dòng)畫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 你不知道的Vue技巧之--開發(fā)一個(gè)可以通過方法調(diào)用的組件(推薦)

    你不知道的Vue技巧之--開發(fā)一個(gè)可以通過方法調(diào)用的組件(推薦)

    這篇文章主要介紹了你不知道的Vue技巧之--開發(fā)一個(gè)可以通過方法調(diào)用的組件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue性能優(yōu)化之cdn引入vue-Router的問題

    vue性能優(yōu)化之cdn引入vue-Router的問題

    這篇文章主要介紹了vue性能優(yōu)化之cdn引入vue-Router的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue前端后端的交互方式?axios

    Vue前端后端的交互方式?axios

    這篇文章主要介紹了Vue前端后端的交互方式?axios,axios?為第三方數(shù)據(jù)請(qǐng)求庫(kù),下文具體的內(nèi)容介紹需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-04-04
  • Vue中對(duì)比scoped css和css module的區(qū)別

    Vue中對(duì)比scoped css和css module的區(qū)別

    這篇文章主要介紹了Vue中scoped css和css module的區(qū)別對(duì)比,scoped css可以直接在能跑起來的vue項(xiàng)目中使用而css module需要增加css-loader配置才能生效。具體內(nèi)容詳情大家參考下本文
    2018-05-05
  • Vue-Router實(shí)現(xiàn)組件間跳轉(zhuǎn)的三種方法

    Vue-Router實(shí)現(xiàn)組件間跳轉(zhuǎn)的三種方法

    這篇文章主要為大家詳細(xì)介紹了Vue-Router來實(shí)現(xiàn)組件間跳轉(zhuǎn)的三種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue 中 onclick和@click區(qū)別解析

    Vue 中 onclick和@click區(qū)別解析

    這篇文章主要介紹了Vue 中 onclick和@click區(qū)別,簡(jiǎn)單點(diǎn)說就是onclick 只能觸發(fā) js的原生方法,不能觸發(fā)vue的封裝方法,@click 只能觸發(fā)vue的封裝方法,不能觸發(fā)js的原生方法,需要的朋友可以參考下
    2024-02-02
  • el-form中的rules未生效的解決方法

    el-form中的rules未生效的解決方法

    本文主要介紹了el-form中的rules未生效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • vue3+vite3+typescript實(shí)現(xiàn)驗(yàn)證碼功能及表單驗(yàn)證效果

    vue3+vite3+typescript實(shí)現(xiàn)驗(yàn)證碼功能及表單驗(yàn)證效果

    這篇文章主要介紹了vue3+vite3+typescript實(shí)現(xiàn)驗(yàn)證碼功能及表單驗(yàn)證效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue使用AES.js的步驟詳解

    vue使用AES.js的步驟詳解

    AES對(duì)數(shù)據(jù)傳輸加密、解密處理---AES.js,下面分步驟給大家介紹vue使用AES.js的示例代碼,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • vue prop屬性傳值與傳引用示例

    vue prop屬性傳值與傳引用示例

    今天小編就為大家分享一篇vue prop屬性傳值與傳引用示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評(píng)論

中卫市| 静乐县| 岑巩县| 屏南县| 韶山市| 静安区| 高碑店市| 广德县| 区。| 长沙县| 宜宾市| 乐至县| 永吉县| 苍溪县| 靖边县| 灵璧县| 沙坪坝区| 鄂州市| 永嘉县| 雷山县| 科技| 明星| 进贤县| 孟津县| 齐河县| 胶州市| 防城港市| 屯门区| 麻阳| 苍梧县| 依安县| 东莞市| 明光市| 六枝特区| 察哈| 定州市| 广水市| 米易县| 防城港市| 隆化县| 佛学|