以下jsfiddle中显示的简单案例:
https://jsfiddle.net/hsak2rdu/
我想交换和动画两个元素,但失败了。正如您在 Playground 中单击切换按钮后看到的那样,第二个元素闪烁到最终位置。
我希望它们同时具有动画效果,就像相互交叉一样。是否可以?
模板:
<div id="app">
<div class="dom" v-for="(_d, _i) in list" :key="_d.id" :style="{ top: _i * 50 + 'px'}">
<span>{{_d.text}}{{_i}}</span>
</div>
<button @click="handle">Toggle</button>
{{list}}
</div>
JS:
new Vue({
el: '#app',
data: {
show: true,
list: [
{
id:1,
text:'First'
},
{
id:2,
text:'Second'
}
]
},
methods:{
handle: function (){
console.log("DEBUG", this.list)
let a = JSON.parse(JSON.stringify(this.list[0]));
let b = JSON.parse(JSON.stringify(this.list[1]))
this.$set(this.list, 0, b);
this.$set(this.list, 1, a);
}
}
});