Изящная анимация блоков перехода

У меня есть такой компонент

      <ul class="space-y-3 flex-col items-end justify-end absolute bottom-6 left-6 right-6 overflow-hidden">
    {#each $chatDisplayQueue as chatEvent (chatEvent.id)}
        <div in:fly={{y:150,duration: 200}} out:fade={{duration: 200}} animate:flip={{duration: 200}}>
            <ChatMessage event={chatEvent}/>
        </div>
    {/each}
</ul>

Обратите внимание, что у меня есть и переход, и анимация. Переход in работает, но переход out не работает, если там включена анимация переворота: / Есть ли способ сделать это должным образом, чтобы работали и переходы, и анимация? заранее спасибо

2 ответа

Если я правильно понимаю вашу проблему, вам нужно что-то вроде этого:

источник: url

Обе анимации уже работают, но одновременно.

Когда вы добавляете задержку ( animation:flip={{ delay:200 }}) вы можете увидеть исчезновение.

      let delay = 0
function addItem() {
  delay = 0;
  ...
}
function removeItem() {
  delay = 200;
  ...
}
</script>

...
<div animation:flip={{ delay }}>...

https://svelte.dev/repl/52a1d8564bfa4c9da6dc9c3a570109ed?version=3.14.1
(кредиты isarikaya для большинства этого реплики)

Другие вопросы по тегам