CSS transitions en keyframes, met 20 voorbeelden om te kopiëren

CSS-transitions-speeltuin

CSS transitions en keyframes: 20 live voorbeelden | We.Inc

Stel duur, vertraging en easing in met schuifregelaars, zie de cubic-bezier-curve getekend, vergelijk transitions met @keyframes en kopieer 20 hover-micro-interacties die rekening houden met reduced motion.

Een CSS-transition animeert een eigenschap vloeiend wanneer de waarde verandert, bijvoorbeeld bij hover: transition: transform 200ms ease-out. Er is een begin- en eindtoestand nodig en hij draait één keer per wijziging. @keyframes-animaties bepalen hun eigen stappen, kunnen herhalen en starten zonder dat er een toestand verandert. Animeer transform en opacity voor het vloeiendste resultaat.

transition, deel voor deel

De speeltuin animeert een echt element tussen twee toestanden met de eigenschap, duur, vertraging en easing die u kiest, en tekent de easing als curve zodat u ziet waarom ease-out vlot aanvoelt en ease-in traag. Verderop staan twintig hover- en focuseffecten die u live kunt bewerken en in elke site kunt plakken.

Veelgestelde vragen

Wat is het verschil tussen een transition en een animation?

Een transition reageert op een gewijzigde waarde, zoals een class die wordt toegevoegd of een hover die begint, en gaat alleen van de oude naar de nieuwe waarde. Een animation gebruikt @keyframes, kan veel stappen hebben, kan herhalen of afwisselen, en draait zodra hij wordt toegepast. Gebruik transitions voor toestandswijzigingen en keyframes voor loaders en aandachtstrekkers.

Waarom draait mijn transition niet?

Veelvoorkomende oorzaken: de eigenschap is niet animeerbaar (display was dat niet, tot allow-discrete), de beginwaarde is auto (height: auto kan zonder nieuwere functies niet worden geïnterpoleerd), het element is net ingevoegd zodat er geen vorige stijl is, of de transition staat alleen op de hover-toestand zodat hij bij mouse-out terugspringt.

Welke eigenschappen zijn goedkoop om te animeren?

transform en opacity kunnen meestal door de compositor worden afgehandeld zonder de layout opnieuw te berekenen of opnieuw te tekenen, dus ze blijven vloeiend. Width, height, top, left of margin animeren dwingt bij elk frame een layout af, en box-shadow of filter veroorzaken repaints, wat op tragere telefoons kan haperen.

Wat betekent cubic-bezier?

Het beschrijft de easing-curve met twee controlepunten, cubic-bezier(x1, y1, x2, y2). De x-waarden zijn tijd en moeten tussen 0 en 1 blijven; de y-waarden zijn voortgang en mogen buiten dat bereik gaan, wat een overshoot of een kleine terugvering geeft.

Hoe houd ik rekening met reduced motion?

Gebruik de media query @media (prefers-reduced-motion: reduce) om beweging in te korten of weg te halen. Een eenvoudige aanpak is kleur- en opacity-wijzigingen te behouden maar transforms te laten vallen, of transition-duration en animation-duration binnen die query op een heel kleine waarde te zetten.

Een easing-curve lezen

Transition of @keyframes?

Animeren van en naar display: none

Transition vs @keyframes in één oogopslag

Wanneer gebruikt u welke

Wat elke eigenschap kost om te animeren

Renderwerk per frame (algemene regel, verschilt per browser)

Een vangnet voor reduced motion

Behoudt toestandswijzigingen maar haalt de verplaatsing weg. Zet het tegen het einde van de stylesheet.

Een popover in en uit faden met @starting-style

Een verbetering voor browsers die allow-discrete en @starting-style ondersteunen. Andere tonen en verbergen direct.

20 micro-interacties om te kopiëren

Hover of focus op elk resultaat om het te zien draaien. Elk fragment eindigt met een regel voor reduced motion.

Kaart optillen

Til een kaart op en maak de schaduw dieper.

Knop groeit

Een kleine schaalvergroting bij hover en een indrukeffect bij klikken.

Schuivende onderstreping

De lijn groeit van links via een background-size.

Kleurvulling

Achtergrond- en tekstkleur wisselen tegelijk.

Pijl-duwtje

Het icoon beweegt terwijl het label stil blijft.

Icoon draaien

Een plus wordt een kruis.

Focusring-fade

De outline-offset animeert voor toetsenbordgebruikers.

Afbeelding inzoomen in kader

De afbeelding schaalt maar het kader snijdt haar af.

Bijschrift onthullen

Het bijschrift schuift omhoog vanaf de onderrand.

Zachte gloed

Een gekleurde schaduw faadt in.

Lichte kanteling

Een paar graden rotatie laat een sticker los aanvoelen.

Rand tekenen

De randkleur verandert van grijs naar het merkblauw.

De rest dimmen

Hoveren over één item laat de andere vervagen.

Glansveeg

Een lichtband veegt bij hover voorbij.

Schakelaarknop

Een checkbox gestyled als schakelaar met een schuivend knopje.

Accordeon-chevron

De markering draait wanneer een details-element opent.

Pulserende stip (keyframes)

Een herhalende statusstip gebouwd met @keyframes.

Spinner (keyframes)

Lineaire timing houdt de rotatie gelijkmatig.

Omhoog infaden bij laden (keyframes)

fill-mode both houdt het verborgen tijdens de vertraging.

Foutschudden (keyframes)

Een korte horizontale schudbeweging die hier één keer afspeelt bij hover.

Easing-curve cubic-bezier({values})

Transition-speeltuin

Vooruit afspelen

Terug afspelen

Uw apparaat vraagt om minder beweging, dus de preview springt in plaats van te bewegen.

Eigenschap om te animeren

Duur: {n}ms

Vertraging: {n}ms

Easing-voorinstellingen

CSS kopiëren

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap