5. Crossfade
La meilleure transition de la Terre !
Il existe une transition plus cool que toutes les autres : crossfade.
Cette transition permet de "déplacer" des éléments d'un endroit vers un autre. Plutôt que de décrire l'effet que ça rend, allez plutôt voir ici pour mieux vous rendre compte.
Pour créer cette transition :
- vous devez d'abord créer
sendetreceiveen exécutantcrossfadeavec quelques paramètres, commeduration - puis, il faut ajouter des transitions
inetoutcorrespondant àsendetreceivesur chacun des éléments que vous souhaitez voir échanger leur place - enfin, il est nécessaire d'identifier précisement les éléments en train de transitioner en
utilisant une clé
key(unidpar exemple)
<script>
import { crossfade } from 'svelte/transition';
const [send, receive] = crossfade({
duration: 500
});
</script>
{#if condition}
<h1 in:send={{ key }} out:receive={{ key }}>BIG ELEM</h1>
{:else}
<small in:send={{ key }} out:receive={{ key }}>small elem</small>
{/if}
Cette transition n'est pas une animation, même si elle en l'air. En effet, les éléments qui transitionnent simultanément ne font qu'échanger leur place tout en apparaissant / disparaissant, créant l'illusion d'un déplacement.