Например, есть кнопка, которая меняет местами пару элементов в массиве, живой пример
здесь . Но transition срабатывает только на левом элементе. А требуется анимировать переходы
обоих одновременно
<template>
<div
v-for="(item, index) in data"
:key="item.id"
class="block"
:style="`left: ${80 * index}px; top: 0px`"
>
{{ item.id }}
</div>
<button @click="swap" style="position: absolute; top: 80px;">SWAP</button>
</template>
<script setup>
import { ref } from 'vue'
const data = ref([{ id: 0 }, { id: 1 }])
function swap() {
;[data.value[0], data.value[1]] = [data.value[1], data.value[0]]
}
</script>
<style>
.block {
transition: left ease-out 1s;
position: absolute;
width: 80px;
height: 80px;
border: 1px solid black;
}
</style>