vue(14)--动画效果,过渡效果

目录

 动画效果

过渡效果


动画效果

transition意思是过渡,在vue中可以实现动画效果和过渡效果

  • 如果在transition后面加上name="hello"类似的, .v-enter-active .v-leave-active就要改成.hello-enter-active, .hello-leave-active
  • 让transition有appear属性相当于:appear="true", 有了appear属性后,在页面打开后transition可以直接执行
  • 在vue中已经规定了样式类名,来的时候叫.v-enter-active可以理解为进入时激活,离开的时候叫.v-leave-active,可以理解为离开时激活
  • 要用动画时,要用@keyframes
  • 简单的写就是from和to,难一点就是写百分比

Test.vue

<template>
  <div>
    <button @click="isShow =! isShow">显示/隐藏</button>
    <transition appear>
        <h1 v-show="isShow">你好啊!!!!!!!!</h1>
    </transition>

  </div>
</template>

<script>
    export default {
        name:'Test',
        data(){
            return{
                isShow:true,
            }
        },
    }
</script>

<style>
    h1{
        background-color: orange;
    }
    .v-enter-active{
        /* linear 匀速,不加也行 */
        animation: atguigu 0.5s linear;
    }
    /* reserve表示走相反 */
    .v-leave-active{
        animation: atguigu 0.5s linear reverse;
    }
    @keyframes atguigu{
        from{
            /* -100px就是从左边而来, */
            transform:translate(-100%)
        }
        to{
            transform:translate(0%);
        }
    }
</style>

App.vue

<template>
  <div>
    <Test/>
    <Test2/>
  </div>
</template>

<script>
// 引入school组件
import Test from "./componments/Test.vue";
import Test2 from "./componments/Test2.vue";

export default {
  name: "App",
  components: {Test,Test2},
};
</script>

过渡效果

可以把过渡过程放在h1里面, 也可以写在进入离开的激活

第一种方法:

h1{
        background-color: orange;
        
        transition: 0.5s linear;
    }

第二种方法:

.hello-enter-active,.hello-leave-active{
        transition: 0.5s linear;
    }
  • 让transition有appear属性相当于:appear="true", 有了appear属性后,在页面打开后transition可以直接执行

Test2.vue

<template>
  <div>
    <button @click="isShow =! isShow">显示/隐藏</button>
    <transition appear>
        <h1 name="hello" v-show="isShow">你好啊!!!!!!!!</h1>
    </transition>

  </div>
</template>

<script>
    export default {
        name:'Test',
        data(){
            return{
                isShow:true,
            }
        },
    }
</script>

<style>
    h1{
        background-color: orange;
        
        transition: 0.5s linear;
    }
    /* 进入的起点 */ /* 离开的终点 */
    .hello-enter,.hello-leave-to{
        transform: translateX(-100%);
    }
    .hello-enter-active,.hello-leave-active{
        transition: 0.5s linear;
    }
    /* 进入的终点 */  /* 离开的起点 */
    .hello-enter-to,.hello-leave{
        transform: translateX(0);
    }
    
</style>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue.js 提供了一种灵活的方式来添加动画效果,其中淡入淡出和位移是常见的视觉过渡。在 Vue 中,你可以使用第三方库如 `vue-animate`、`v-enter-active` 或直接使用 CSS 和 Vue 的 `v-show`、`v-if` 结合 `transition` 或 `v-enter`、`v-leave` 来实现这些效果。 1. **淡入淡出**(Fade in/out): 在 Vue 中,你可以使用 `v-enter` 和 `v-leave` 修饰符配合 CSS 过渡(`transition`)来实现元素的淡入淡出效果。例如: ```html <template> <div class="fade" v-enter="fadeIn" v-leave="fadeOut"> 这是一个动态组件 </div> </template> <script> export default { methods: { fadeIn() { this.$el.style.opacity = 0; }, fadeOut() { this.$el.style.opacity = 0; setTimeout(() => { this.$el.style.display = 'none'; }, 300); } } } </script> <style> .fade-enter-active, .fade-leave-active { transition: opacity 0.5s ease; } .fade-enter, .fade-leave-to { opacity: 0; } </style> ``` 在这个例子中,`.fade-enter-active` 和 `.fade-leave-active` 设置了淡入淡出的过渡效果,`.fade-enter` 和 `.fade-leave-to` 是状态开始和结束时的样式。 2. **位移**(Position transition): 如果你想让元素在淡入淡出的同时还有位置移动,可以在 CSS 里定义 `transform: translate()` 并结合过渡效果。例如: ```css .fade-translate-enter-active, .fade-translate-leave-active { transition: all 0.5s ease; } .fade-translate-enter { transform: translateY(100px); } .fade-translate-leave-to { transform: translateY(0); } ``` 在上述代码中,`.fade-translate-enter` 和 `.fade-translate-leave-to` 分别设置了进入和离开时的初始和结束位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值