为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第5天 使用 Vue 实现基础的 CSS 过渡与动画效果

标签:
Vue.js

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

课程章节:4-1 使用 Vue 实现基础的 CSS 过渡与动画效果,4-2 使用 transition 标签实现单元素组件的过渡和动画效果(1)

主讲老师:Dell


课程内容:

今天学习的内容包括: 使用 Vue 实现基础的 CSS 过渡与动画效果,使用 transition 标签实现单元素组件的过渡和动画效果。

动画效果知识点:
1. v-enter-from:入场前状态效果
2. v-enter-active 入场时状态效果
3. v-enter-to 入场结束,离场开始状态效果
4. @keyframes 动画关键帧属性:0%, 25%,表示动画执行的阶段百分比
5. 动画只需要定义 v-enter-active / v-leave-active
示例代码:
<style>
    /* 动画
    @keyframes leftToRight {
        0% {
            transform: translateX(-100px);
        }
        50% {
            transform: translateX(-50px);
        }
        0% {
            transform: translateX(0px);
        }
    }
    .animation {
        animation: leftToRight 3s;
    } */

    /* 过渡
    .transition {
        transition: 3s background-color ease;
    }
    .blue {
        background: blue;
    }
    .green {
        background: green;
    } */
    .transition {
        transition: 2s background-color ease;
    }
</style>

<script>
    const app = Vue.createApp({
        data() {
            return {
                styleObj: {
                    background: 'blue'
                }
            }
        },
        methods: {
            handleClick() {
                if(this.styleObj.background === 'blue') {
                    this.styleObj.background = 'green';
                } else {
                    this.styleObj.background = 'blue'
                }
            }
        },
        template: `
            <div>
                <div class="transition" :style="styleObj">hello world</div>
                <button @click="handleClick">切换</button>
            </div>
        `
    });

    const vm = app.mount('#root');
</script>

示例代码2:
<style>
    @keyframes shake {
        0% {
            transform: translateX(-100px)
        }
        50% {
            transform: translateX(-50px)
        }
        100% {
            transform: translateX(50px)
        }
    }
    .hello-leave-active {
        animation: shake 3s;
    }
    .hello-enter-active {
        animation: shake 3s;
    }
</style>

<script>
    // 单元素,单组件的入场出场动画
    const app = Vue.createApp({
        data() {
            return {
                show: false
            }
        },
        methods: {
            handleClick() {
                this.show = !this.show;
            }
        },
        template: `
            <div>
                <transition name="hello">
                    <div v-if="show">hello world</div>
                </transition>
                <button @click="handleClick">切换</button>
            </div>
        `
    });
  
    const vm = app.mount('#root');
</script>

课程收获:

今天只学了第四章的前两节,对 Vue 实现动画效果有了更深的了解,可以去试着给自己的博客做一个黑暗模式的切换效果。明天中秋节也要继续努力啊,学无止境。

今日课程学习时间大约花费 15 分钟。

https://img1.sycdn.imooc.com//631b5e3d0001344319190939.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消