vue的transition-group 下面每个元素分别执行动画

Posted 破晓儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue的transition-group 下面每个元素分别执行动画相关的知识,希望对你有一定的参考价值。

vue中可以使用<transition-group> 组件同时渲染整个列表,对一组列表进行动画渲染,而当使用动态数据进行动画渲染时,我们可以使用钩子函数,那么如果我们要对每个元素分别执行动画,该怎么做呢?

  此时我们可以在列表标签中使用 v-bind:data-XXX="动态值",那么在钩子函数中就可以通过el.dataset.XXX拿到该值,从而分别执行动画!

 

例如:

    <transition-group v-on:before-enter="beforeEnter" v-on:enter="enter">
         <span v-for="(item,index) in arr"  v-bind:key="item"  v-bind:data-index="item"> </span>
    </transition-group>
 
<script>
  export default {
     methods:{
          beforeEnter: function (el) {
          },
         enter: function (el, done) {
            var index = el.dataset.index
            setTimeout(function () {
               Velocity(
                  el,
                  { ‘background-position-y‘:-100*index+‘%‘ },
                  { duration: 5000 + index * -100,
                    easing: "easeInOutCirc",
                    complete: done }
              )
            }, index * -10)
        },
      }
   }
</script>

 

以上是关于vue的transition-group 下面每个元素分别执行动画的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解

使用 CSS 和 jQuery 创建自己的 Vue <transition-group> 动画

vue+transition-group实现拖动排序

vue列表过渡效果

vue的transition-group实现列表的添加和删除动画

vue.draggable拖拽组件中用transition-group包裹拖拽组件了,拖拽还是没有动画?