vue04-动画-动态组件

1.

1. 基本过渡动画
transition的name名要和样式的前缀名一致(fade)
enter---->enter-to —enter-active
leave---->leave-to —leave-active

<transition name="fade">
    <p v-if="show">hello</p>
</transition>
.fade-enter{
  	 opacity: 0;
     width: 0;
     background-color: black;
 }
 .fade-enter-to{
     width: 200px;
     opacity: 1;
     background-color: white;
 }
  .fade-enter-active{
     transition: all 1s linear;
 }

2.关键帧动画

<transition name="fade">
    <p v-if="show">hello</p>
</transition>
@keyframes donghuaming {
  	 0%{
         opacity: 0;
     }
     100%{
         opacity: 1;
     }
}
.fade-leave-active,.fade-enter-active{
   animation: donghuaming 2s linear;
}

3.第三方动画

<transition enter-active-class="animate__animated animate__flash" 
            leave-active-class="animate__animated animate__swing">
     <p v-show="isshow">白日放歌须纵酒,青春作伴好还乡</p>
</transition>
@import "../../node_modules/animate.css/animate.css";

4.多个元素动画
1.相同标签名元素切换,需要设置key属性唯一
2.控制多元素动画先后顺序:transition组件中设置mode(过渡动画模式)
in-out先进入再离开 out-in先离开再进入

<transition		enter-active-class="animate__animated animate__flash"
                leave-active-class="animate__animated animate__swing"
                mode="out-in">
            <p v-if="isShow" id="a" key="1">第一个p</p>
            <p v-else        id="b" key="2">第二个p</p>
</transition>

2.多个组件动画

3.动态组件

<keep-alive :include="/^(Child)/">//keep-alive默认缓存所有组件
// include属性,写哪个组件名,就缓存哪个,不写就不缓存。
值可以是字符串,可以写多个名字,可写正则
exclude,写谁不缓存谁,不写的则缓存
   <component :is="curr"></component>//可以通过组件名切换组件
</keep-alive>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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` 分别设置了进入和离开时的初始和结束位置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值