亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第20天 Vue3框架

標簽:
Vue.js

课程名称:2022持续升级 Vue3 从入门到实战 掌握完整知识体系

课程章节:第4章 Vue 中的动画

主讲老师:Dell

课程内容:

今天学习的内容包括:

  • :css="false"

  • 使用js实现动画效果

  • setInterval

  • setTimeout

  • :duration="{ enter:1000, leave: 3000}"控制出场和入场动画的时间

  • 编程练习

课程收获:     

:duration="{enter:1000, leave: 3000}" 对动画和过渡的时常控制

enter对入场动画的控制,leave对出场动画的控制,

:css="false"禁用css的动画控制

动画执行之前的钩子函数@before-enter,@enter动画执行运行的钩子函数

setInterval(() => {},1000) 间隔1秒执行一次

setTimeout(() => {},1000) 定时器

https://img1.sycdn.imooc.com//632f04fd0001a77805830300.jpg

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);

          },3000)

        },


done();动画执行结束,

 @after-enter="handleEnterEnd"只有动画执行结束后(执行done()函数后)才会触发这个@after-enter

https://img1.sycdn.imooc.com//632f03de0001c99906880447.jpg

出场动画

@before-leave=""离场动画执行之前(接收el)

@leave=""离场动画执行中(接收el,done)

@leave-after=""离场动画执行结束(接收el)


https://img1.sycdn.imooc.com//632f05220001eca609920343.jpg

编程练习

<!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>Document</title>

  <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/vue@next"></script>

  <style>

    @keyframes shake {  /* 定义一个关键帧shake的动画效果 */

      0% {

        transform: translateX(-100px);

      }

      50% {

        transform: translateX(-50px);

      }

      100% {

        transform: translateX(50px);

      }

    }

    .v-enter-from {

      color: red;

    }

    .v-enter-active {

      animation: shake 3s;

      transition: all 3s ease-in;

    }

    .v-leave-active { /* 表示在整个过程中我去怎么执行这个动画(根据opacity透明度,在3s内规定以慢速结束的过渡效果) */

      animation: shake 3s;

      color: aqua;

    }

  </style>

</head>

<body>

  <div id="root"></div>

</body>

  <script>

    const app = Vue.createApp({

      data() {

        return {  /* show为true则显示,反之false不显示 */

          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);/* 3秒后停止animation */

            done();

          },3000)

        },

        handleEnterEnd() {

          alert(123);

        }

      },

      template: `

      <transition

        :css="false"

        @before-enter="handleBeforeEnter"

        @enter="handleEnterActive"

        @after-enter="handleEnterEnd"

      >

        <div v-show="show">Hello</div>

      </transition>

        <button @click="handleClick">按钮</button>

      `

    })


    const vm = app.mount('#root')

  </script>

</html>

https://img1.sycdn.imooc.com//632f05800001355707700665.jpg

            今天学习了duration设置动画执行和过渡的时间,禁用css动画效果,使用js设置动画效果以及设置定时器等,今天也是收获满满的一天,希望能够每天学习一点点,一直坚持下,加油! 

下载视频          
點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
9
獲贊與收藏
42

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消