Одним из объяснений может быть использование transition
s на внешних элементах страниц.
При использовании, например, перехода fade
, предоставляемого Svelte, элементы, которые постепенно появляются и исчезают в в одно и то же время (например, чтобы заменить друг друга) оба будут видны на протяжении перехода.
Чтобы избежать такого поведения, вам нужно добавить delay
к элементу, который постепенное нарастание, соответствующее длительности перехода на постепенное исчезновение. Это приведет к тому, что новый элемент будет виден только тогда, когда старый элемент уже удален из DOM.
В качестве примера:
<main in:fade={{ delay: 100, duration: 100 }} out:fade={{ duration: 100}}>
См. Svelte docs для получения дополнительной информации о параметрах перехода.