我正在尝试在 Svelte 中构建一个简单的过渡,其中我有在页面加载时动画的卡片。我已经按照这个答案让它正确触发onMount
,所以没关系。但是,过渡本身似乎太快“跳”到结尾,并跳过了最后几帧。
奇怪的是,当我将相同的代码复制并粘贴到REPL中时,视觉错误似乎已修复。我什至下载了 REPL 并在本地运行,但仍然出现错误。
这是代码。
<script>
import { fly } from 'svelte/transition';
import { onMount } from 'svelte';
const contents = [
{
id: 1,
},
{
id: 2,
},
{
id: 3,
},
];
let ready = false;
onMount(() => (ready = true));
</script>
<main>
<div class="topBar" />
<div class="container">
{#if ready}
{#each contents as content, i}
<div
class="transCard"
transition:fly={{ y: 80, duration: 1000, delay: i * 200 }}
/>
{/each}
{/if}
</div>
</main>
<style>
main {
background: white;
width: 100vw;
height: 100vh;
overflow-y: auto;
overflow-x: hidden;
}
.container {
display: flex;
flex-direction: column;
gap: 16px;
padding: 16px;
overflow: hidden;
margin-top: 80px;
}
.topBar {
width: 100vw;
height: 80px;
background: black;
position: fixed;
top: 0;
left: 0;
z-index: 9;
}
.transCard {
width: 100%;
height: 200px;
background: gray;
}
</style>