Animations
剛剛的 crossfade 雖然可以讓 Todo List 在勾選項目時有移動的效果,但其他項目的遞補移動卻沒有。
這時候我們可加上 flip 來讓其他項目的遞補移動也有動畫效果。
<script>
import { flip } from "svelte/transition";
// ...
</script>
<!-- ... -->
<li
class:done
in:receive={{ key: todo.id }}
out:send={{ key: todo.id }}
animate:flip={{ duration: 300 }}
>
<!-- ... -->
</li>
請注意,所有動畫都是透過 CSS 應用的,而不是 JavaScript,這意味著它們不會阻塞(或被阻塞)主執行緒。