Tilbage til Positioning, Scroll & View Transitions

3. semester / Tema 13C: Frontend Design

View Transitions i praksis

Forstå forskellen på same-document og cross-document view transitions, og hvordan `view-transition-name` bruges til at styre animationen.

Se undervisningsslides

Relevante links

To spor: SPA og MPA

Der er to typer af view-transitions: same-document transitions og cross-document transitions.

view-transition-name skiller elementer ud fra root-transitionen

Uden ekstra styling bliver hele view-opdateringen i praksis animeret som én samlet cross-fade. Hvis bestemte elementer skal have deres egen overgang, skal de have et view-transition-name.

.box-1 {
view-transition-name: box-1;
}
.box-2 {
view-transition-name: box-2;
}

Det giver dig særskilte snapshots, som du bagefter kan style via pseudo-elementerne.

En vigtig detalje fra MDN: et custom view-transition-name skal være unikt blandt de renderede elementer. Hvis to elementer har samme navn samtidig, kan transitionen blive afbrudt. Hvis du har mange elementer i samme dokument, kan match-element være nyttigt, fordi browseren så tildeler dem unikke interne navne automatisk.

Selve animationen styles på pseudo-elementerne

Når et element har et navn, kan du style snapshots af den gamle og nye tilstand separat:

::view-transition-old(box-1) {
animation: 0.4s ease both fade-out;
}
::view-transition-new(box-1) {
animation: 0.4s ease both fade-in;
}

Det er her View Transitions bliver interessante: du animerer ikke DOM-elementet direkte i overgangen, men de snapshots browseren laver af den gamle og nye tilstand.

Hvis du vil arbejde mere aktivt med JavaScript-delen, er ViewTransition.ready og ViewTransition.finished nyttige steder at koble ekstra logik eller cleanup på. Hvis API’et ikke findes, bør løsningen stadig kunne falde tilbage til en almindelig DOM-opdatering eller navigation.