• 概述:Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
  • 常用:

    • 在css过渡和动画中自动应用class
    • 在过渡钩子函数中使用JavaScript直接操作DOM
    • 配合使用第三方CSS动画库,如Animate.css
  • 过渡的类名:

    • 总结

    • v-enter:动画生效前(不起name属性,默认是v-开头)
    • v-enter-to:动画生效后
    • v-enter-active:动画生效期间,常用来挂transition:all 0.8s easy;【入场动画的时间段】
    • v-leave:动画结束前
    • v-leave-to:动画结束后
    • v-leave-active:动画结束期间【离场动画的时间段】
    • 使用:

      • 应用类

        • 单组件transition,<transition name=”fade”></transition>,相关的6个类名要用fade-前缀
        • .v-enter,.v-leave-to{} //描述进场和离场状态
        • .v-enter-active,.v-leave-active{} //入场和离场的动画时间段
      • 应用第三方css动画库,如Animate.css

        • <transition enter-active-class=”bounceIn” leave-active-class=”bounceOut” :duration=”{ enter: 200, leave: 400 }”>
        • enter-active-class=”bounceIn”
        • leave-active-class=”bounceOut”
        • :duration=”{ enter: 200, leave: 400 }” :duration=”200″
        • 记得启用动画得加.animated
      • JS钩子

        • 注意:

          • 动画钩子函数的第一个参数:el,表示 要执行动画的那个DOM元素,是个原生的 JS 
          • el 是通过 document.getElementById(”) 方式获取到的原生JS DOM对象
        • <transition
        • v-on:before-enter=”beforeEnter”
        • v-on:enter=”enter”
        • v-on:after-enter=”afterEnter”
        • v-on:enter-cancelled=”enterCancelled”
        • v-on:before-leave=”beforeLeave”
        • v-on:leave=”leave”
        • v-on:after-leave=”afterLeave”
        • v-on:leave-cancelled=”leaveCancelled”
        • >
        • beforeEnter(el){ // beforeEnter 表示动画入场之前,此时,动画尚未开始,可以 在 beforeEnter 中,设置元素开始动画之前的起始样式 // 设置小球开始动画之前的,起始位置 el.style.transform = “translate(0, 0)” }
        • enter(el, done){ // 这句话,没有实际的作用,但是,如果不写,出不来动画效果; // 可以认为 el.offsetWidth 会强制动画刷新 el.offsetWidth // enter 表示动画 开始之后的样式,这里,可以设置小球完成动画之后的,结束状态el.style.transform = “translate(150px, 450px)” el.style.transition = ‘all 1s ease’ // 这里的 done, 起始就是 afterEnter 这个函数,也就是说:done 是 afterEnter 函数的引用 done()}
        • afterEnter(el){ // 动画完成之后,会调用 afterEnter // console.log(‘ok’) this.flag = !this.flag}
      • 列表动画

        • <transition-group appeartag=”ul”>
        • 在实现列表过渡的时候,如果需要过渡的元素,是通过 v-for 循环渲染出来的,不能使用 transition 包裹,需要使用 transitionGroup
        • 如果要为 v-for 循环创建的元素设置动画,必须为每一个 元素 设置 :key 属性
        • 给 transition-group 添加 appear 属性,实现页面刚展示出来时候,入场时候的效果
        • 通过 为 transition-group 元素,设置 tag 属性,指定 transition-group 渲染为指定的元素,如果不指定 tag 属性,默认,渲染为 span 标签

版权声明:本文为laomi233原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/laomi233/p/9365989.html