教你怎么使用Vue实现动画效果(附代码)

 7336

下面本篇文章给大家介绍怎么使用Vue实现动画效果,有需要的朋友可以参考一下,希望对你们有帮助。


教你怎么使用Vue实现动画效果(附代码)


官网 API 地址:https://cn.vuejs.org/v2/guide/transitions.html


官方的demo点击显示与消失

  1. <div id="demo">
  2.   <button v-on:click="show = !show">
  3.     Toggle
  4.   </button>
  5.   <transition name="fade">
  6.     <p v-if="show">hello</p>
  7.   </transition>
  8. </div>
  9. <script>
  10.   new Vue({
  11.     el: "#demo",
  12.     data: {
  13.       show: true,
  14.     },
  15.   });
  16. </script>
  17. <style>
  18.   .fade-enter-active,
  19.   .fade-leave-active {
  20.     transition: opacity 0.5s;
  21.   }
  22.   .fade-enter,
  23.   .fade-leave-active {
  24.     opacity: 0;
  25.   }
  26. </style>

transition 使用

  1. <transition name="fade">
  2.   (元素,属性、路由....)
  3. </transition>

class定义

.fade-enter{ }进入过渡的开始状态,元素被插入时生效,只应用一帧后立即删除;(运动的初始状态)

.fade-enter-active{ }进入过渡的结束状态,元素被插入时就生效,在transition/animation完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。

.fade-leave{ }离开过渡的开始状态,元素被删除时触发,只应用一帧后立即删除;

.fade-leave-active{ }离开过渡的结束状态,元素被删除时生效,在transition/animation完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。


自定义过度类名

默认的 .fade-enter变成 .fade-in-enter

默认的 .fade-enter-active变成 .fade-in-active

默认的 .fade-leave变成 .fade-out-enter

默认的 .fade-leave-active变成 .fade-out-active


  1. <transition
  2.   name="fade"
  3.   enter-class="fade-in-enter"
  4.   enter-active-class="fade-in-active"
  5.   leave-class="fade-out-enter"
  6.   leave-active-class="fade-out-active"
  7. >
  8.   <p v-show="show">hello</p>
  9. </transition>
  1. .fade-in-active,
  2. .fade-out-active {
  3.   transition: all 0.5s ease;
  4. }
  5. .fade-in-enter,
  6. .fade-out-active {
  7.   opacity: 0;
  8. }


transition相关函数

  1. <transition
  2.   name="fade"
  3.   @before-enter="beforeEnter"
  4.   @enter="enter"
  5.   @after-enter="afterEnter"
  6.   @before-leave="beforeLeave"
  7.   @leave="leave"
  8.   @after-leave="afterLeave"
  9. >
  10.   <div v-show="show"></div>
  11. </transition>
  12. <script>
  13.   export default {
  14.     methods: {
  15.       beforeEnter(el) {
  16.         console.log("动画enter之前");
  17.       },
  18.       enter(el) {
  19.         console.log("动画enter进入");
  20.       },
  21.       afterEnter(el) {
  22.         console.log("动画进入之后");
  23.         el.style.background = "blue";
  24.       },
  25.       beforeLeave(el) {
  26.         console.log("动画leave之前");
  27.       },
  28.       leave(el) {
  29.         console.log("动画leave");
  30.       },
  31.       afterLeave(el) {
  32.         console.log("动画leave之后");
  33.         el.style.background = "red";
  34.       },
  35.     },
  36.   };
  37. </script>


transition结合animate.css使用

以下代码演示元素以 X 轴为基线,翻转进场出场的动画Animate.css 库点这里地址:https://animate.style/

  1. <!-- 翻转进场出场-->
  2. <transition enter-active-class="flipInX" leave-active-class="flipOutX">
  3.   <div v-show="show" class="animated"></div>
  4. </transition>
  5. <!-- 或者 -->
  6. <transition
  7.   enter-active-class="animated flipInX"
  8.   leave-active-class="animated flipOutX"
  9. >
  10.   <div v-show="show"></div>
  11. </transition>

列表过渡

  1. <transition-group enter-active-class="flipInX" leave-active-class="flipOutX">
  2.   <div v-show="show" :key="x" v-for="x in 5"></div>
  3. </transition-group>

需要注意的是在group的时候,key的取值直接影响动画的过渡。


本文网址:https://www.zztuku.com/index.php/detail-9074.html
站长图库 - 教你怎么使用Vue实现动画效果(附代码)
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐