CSS keyframe-animeringar öppnar ett stort antal möjligheter för vad som kan åstadkommas med CSS. Mycket mer än enkla, enstegsövergångar, nyckelbilder kan användas för att uppnå komplexa, flerstegsanimeringar som är ganska imponerande.
I dagens projekt kommer vi att börja från början och bygga en stapel med två bilder som sprids ut och byta ut sin stackningsordning när du svävar över dem. Längs vägen lär vi oss allt om hur man använder keyframes som ett proffs och jonglera alla de huvudspinnande prefixen!
Vad vi bygger
Konceptet för detta projekt är ganska enkelt. Tänk dig två bilder, slumpmässigt roterade och staplade ovanpå varandra som om du hade kastat dem på ett skrivbord. Problemet är att du bara kan se fotot på toppen!
För att hjälpa det nedre fotot får du den uppmärksamhet som den förtjänar, vi kommer att skapa en svänghändelse som först skiljer de två bilderna och släpper det översta fotot bakom det nedersta fotot och ändrar effektivt staplingsordningen.
Odds är, om du läser den här bloggen, är du en visuell tänkare, så här är hur det ser ut i bilderna:
Keyframe Animationer vs Övergångar
CSS har för närvarande två primära alternativ för animering av ett element: övergångar och nyckelbilder. Varje gång du vill animera någonting måste du analysera situationen och bestämma vilken metod som är lämplig. Lyckligtvis är det lätt att bestämma mellan de två.
Varje gång du har en enkel animering med bara ett steg, är en övergång den perfekta lösningen. Till exempel, om du vill att något ska rotera något när du svävar över det, skulle du förmodligen dra av effekten med en övergång. Du ställer bara in det ursprungliga tillståndet, då det roterade tillståndet och övergången mellan de två.
Tänk nu att du ville ta den här idén ytterligare och skapa en animerad ratt som du skulle se för att spricka ett säkert. Du skulle nog vilja att den snurra medurs för en sekund, sedan moturs, sedan kanske medurs igen, du får idén. För detta scenario vill du definitivt gå med en keyframe-animation.
Vilka ska vi använda?
Ovan skisserade vi animationen som vi vill uppnå. Självklart kommer det att bli ganska komplext. Flera objekt kommer att röra sig fram och tillbaka, rotera och byta sin staplingsordning. Med tanke på denna komplexitet är keyframe-animationer det naturliga valet.
Browser Support
Det är bra att komma ihåg att både nyckelbilder och övergångar nu har ganska anständigt stöd på de stora webbläsarna? utom för kursen för IE. Såvitt jag kan säga kommer inte övergångar eller animationer att stödjas förrän IE10, så du vill självklart inte lita på dem för någon större funktionalitet.
Källa: CanIUse.com
Steg 1. HTML
Nog bygga upp, låt oss hoppa in i byggandet av denna sugerör. Det första du gör är att lägga ut projektet i HTML. Detta är förstås mycket enkelt. Allt vi behöver är en behållare med två bilder.