vue过渡动画的使用

1,基本语法格式

<style>
    /* 注意:这个6个过渡类,都是vue内置的,所以,需要使用vue提供的这个类名才行 */

    .v-leave {
      /* 定义 出场动画的 起始状态 */
      /* 只停留一帧 */
      transform: translateY(100px);
    }

    .v-leave-active {
      /* 定义 出场动画 过程 */
      transition: all 1s ease;
    }

    .v-leave-to {
      /* 定义 出场动画 结束状态(即:该动画要达到的目标状态) */
      transform: translateY(300px);
      opacity: 0;
    }

    /* 定义  入场动画 */

    .v-enter {
      /* 定义 入场动画 的起始状态 */
      transform: translateY(300px);
      opacity: 0;
    }

    .v-enter-active {
      /* 定义 入场动画 过程 */
      transition: all 2s ease;
    }

    .v-enter-to {
      /* 定义 入场动画 过程 */
      /* 只停留一帧 */
      transform: translateY(0px);
    }
  </style>
<transition>
    <p v-show = "show" v-bind:style = "styleobj">动画实例</p>
</transition>

过渡其实就是一个淡入淡出的效果。Vue在元素显示与隐藏的过渡中,提供了 6 个 class 来切换:

  • v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

  • v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

  • v-enter-to: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。

  • v-leave: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

  • v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

  • v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。

2,css过渡动画案例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<style>
/* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
.fade-enter-active, .fade-leave-active {
    transition: opacity 2s
}
.fade-enter, .fade-leave-to  {
    opacity: 0
}
</style>
</head>
<body>
<div id = "databinding">
<button v-on:click = "show = !show">戳我!!</button>
<transition name = "fade">
    <p v-show = "show" v-bind:style = "styleobj">动画</p>
</transition>
</div>
<script type = "text/javascript">
var vm = new Vue({
el: '#databinding',
    data: {
        show:true,
        styleobj :{
            fontSize:'30px',
            color:'red'
        }
    },
    methods : {
    }
});
</script>
</body>
</html>

3,animate.css插件

  Animate.css是由Dan Eden的Daniel Eden使用CSS3的animation制作的动画效果的CSS集合。
  它预设了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果。换句话说:Animate.css就是一大堆的很酷,很有趣,而且很炫又能跨浏览器的动画效果样式集锦,可以直接使用到项目中。

  地址:https://github.com/daneden/animate.css

实际应用

  在一般的使用中,直接在元素上添加animated和对应的类名即可

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
    <style>
      .box{height: 100px;width: 100px;background-color: lightblue}
   </style>
</head>
   <body>
     <div class="box animated flash"></div>
   </body>
</html>

  animat加过渡的一些问题

     type="transition"  //用于选择动画的持续时间是过渡的时间

    :duration="10000"       //自定义动画时长

    :duration="{enter:5000,leave:10000}"  //动画进入时长和离开时长

 

 

以上内容为学习总结,欢迎批评指正~~

posted @ 2021-08-18 18:13  理想三旬·  阅读(171)  评论(0编辑  收藏  举报