Hopp til hovedinnhold

I dagens CSS skal vi se på @starting-style

Den her gleder jeg meg til, for det kommer til å forenkle måten jeg lager inn- og ut-animasjoner på! Tidligere har jeg fått til dette med en kombinasjon av tilstandshåndtering i javascript ved å skru av og på klasser, og eventer som onAnimationEnd.

Med @starting-style kan man nå definere “start”-stiler for et element når den er først rendret. I dette eksempelet vil bakgrunnsfargen starte usynlig og bli lilla etter første render.

div {
  transition: background-color 1.5s;
  background-color: rebeccapurple;
}

@starting-style {
  div {
    background-color: transparent;
  }
}

Men man kan også definere hvilke stiler et element skal ha hvis man endrer display mellom block og none. Her vil elementet endre gjennomsiktighet mens man endrer på display.

div {
  transition-property: opacity, display;
  transition-behavior: allow-discrete;
  transition-duration: 0.5s;
  display: block;
  opacity: 1;
  
  @starting-style {
    opacity: 0;
  }
}

div.hidden {
  display: none;
  opacity: 0;
}

Mer at her er også transition-behavior: allow-discrete brukt for å kunne animere ut-animasjonen, for ellers ville elementet fått verdien display: none før den rekker å animere ferdig.

Denne regelen er ganske godt støttet, med unntak av Firefox, så dessverre kan vi ikke ta den i bruk helt enda, men jeg venter i spenning!

Relevante lenker anbefalt av forfatteren

Liker du innlegget?

Del gjerne med kollegaer og venner