vue核心基础-过渡动画

第一种方法:引入类名

.v-enter{
      opacity: 0;
    }
    .v-enter-to{
      opacity: 1;
    }
    .v-leave{
      opacity: 1;
    }
    .v-leave-to{
      opacity: 0;
    }
    .v-enter-active,
    .v-leave-active {
      transition: all 1s;
    }

第二种方法:通过钩子函数

在transition标签里面添加
v-bind:before-enter="beforeEnter"
v-bind:enter="enter"
v-bind:after-enter="afterEnter"

在vue得methods中创建过渡动画

注意点
  • 这种方法他还是会默认寻找类名,所以需要添加v-bind:css="false"
  • 通过钩子函数这种方法,再enter时候必须要添加el.offsetHeight或者el.offsetWidth,不然没有动画效果
  • 如果想要已进入页面就执行动画,那么需要添加done回调函数,不然不会往下执行,并且需要延迟执行done
  • 可以修改name属性来修改前缀v-

第三种方法:利用Velocity

第一步引用velocity(<script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.3/velocity.min.js"></script>)
第二步创建钩子函数,找到enter,在enter里面构建动画。例:Velocity(el, {opacity: 1, marginLeft: "500px"}, 3000); done();

第四种方法通过自定义类名,引入animate.css

在transition标签中利用:

  • enter-class=""
  • enter-active-class=""
  • enter-to-class=""
  • leave-class=""
  • leave-active-class=""
  • leave-to-class=""
    后面的函数名可自定义,也可以引用animate.css
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    .app{
      width: 200px;
      height: 200px;
      background: red;
    }
  </style>
  <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
<div id="demo">
  <button @click="isShow">toggle</button>
  <transition appear
              enter-class=""
              enter-active-class="animated bounceInRight"
              enter-to-class=""
  >
    <div class="app" v-show="show"></div>
  </transition>
</div>
<script>
  let vue = new Vue({
    el: "#demo",
    data: {
      show: true,
    },
    methods: {
      isShow(){
        this.show = !this.show;
      }
    }
  })
</script>

注意点

动态渲染界面时,要给动态更新的元素添加过度动画,那么不能使用transition,而要使用transition-group标签
transition-group标签会在动态渲染界面时,将所有元素放在span中。再标签中添加tag="ul"自定义

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.计算属性 <!DOCTYPE html> 22-Vue-计算属性 <!-...
    煤球快到碗里来阅读 354评论 0 1
  • 开篇 1.什么是Vue?Vue.js是一套构建用户界面的框架,它不仅易于上手,还可以与其它第三方库整合(Swipe...
    Gmn_微双阅读 318评论 0 0
  • 一、 计算属性与方法比较 计算属性: 方法: 可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确...
    Sun____阅读 333评论 0 0
  • 一、概念介绍 Vue.js和React.js分别是目前国内和国外最火的前端框架,框架跟类库/插件不同,框架是一套完...
    刘远舟阅读 1,081评论 0 0
  • 三、组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML元素,封装可重用...
    小山居阅读 627评论 0 1