Låt oss avsluta veckan med något kul ska vi? CSS keyframe-animationer har för närvarande mycket begränsat webbläsarstöd, men de är fortfarande ganska intressanta att lära sig om och experimentera med.
Nedan bygger vi en enkel webbsida som använder Webkit keyframe-animationer för att försiktigt flytta bakgrundsfärgen på en aldrig sluten slinga. Fascinerad? Läs vidare!
demo
För att få en snygg titt på vad vi ska bygga idag, klicka på länken nedan.
Live-demo: Klicka här
Keyfame Animationer: Fortfarande bara för skojs skull
Med CSS3 är det lätt att få en färg att blekna in i en annan, säg på ett hover-kommando. Ställ in två olika färger, kasta i en övergång och du är bra att gå. Men vad händer om vi vill ha något som ständigt förändrar färgerna? Svaret ligger i nyckelbilder.
För närvarande är stöd för keyframe-animationer i CSS ganska lågt. Faktum är att du verkligen kan bara tjäna på det som fungerar i Webkit-webbläsare som Safari och Chrome (Firefox 5 bör också se stöd). Så den olyckliga delen är det, som med många CSS3-tricks, är det inte helt klart att använda i produktion om du inte är helt förberedd för att många användare missar erfarenheten.
Hur Keyframes Work
Keyframe-animationer är en av de mer komplicerade nya funktionerna i CSS. Det känns faktiskt lite mer som programmering än styling, till och med till nästan deklarerar en variabel! Låt oss göra en snabb och smutsig genomgång för att se hur de fungerar.
Det första du vill göra är att förklara webkit keyframe-blocket och namnge din animering.
Som jag antydde ovan är ditt animationsnamn nästan som en variabel som du kommer att ringa på senare så se till att det är både beskrivande och lätt att komma ihåg. Till exempel, för vårt experiment, kan vi använda namnet? ColorPulse ?.
Nästa, vi fyller detta är med en slags tidslinje för vår animering. Tänk på det som att förklara keyframes precis som du skulle i ett animationsprogram, bara här använder du ren kod. Procentandelarna representerar objektets tillstånd vid den punkten av animationen.
Här animerar vi uppenbarligen bakgrundsfärgegenskapen. Vid 0% skulle färgen vara röd, vid 50% skulle den vara vit och vid 100% skulle den vara blå. Alla tweening görs automatiskt så att allt som lämnas är att ange animationen till ett visst element och definiera beteendet. Här tillämpar vi den på en div.
Som du kan se använde vi namnet på animationen, det här gäller de saker som vi satt upp tidigare. Därefter ställer vi in varaktigheten (10 sekunder), antalet iterationer (oändlig) och riktning (alternativ). Den senare av dessa kommer att orsaka animationen att springa bakåt och framåt: röd, vit, blå, vit, röd, vit, blå, etc.
Detta är egentligen bara stenografi för dessa deklarationer. Du kan också ställa in dem en i taget. Här är en större lista över animeringsegenskaperna som du kan definiera:
Pulsande hemsida bakgrund
Nu när vi har en känsla för hur det här fungerar, låt oss ta det vidare genom att bygga ett riktigt exempel. Vi börjar med att utforma en grundläggande siddesign och avsluta med att lägga till i vår animering.
Bakgrundsfärg
För att designa sidan måste vi välja en bakgrundsfärg. Det här är en intressant uppgift med tanke på projektet. Vårt mål är att skapa en bakgrund som pulserar från en färg till en annan. Jag kan inte tillräckligt betona hur farligt detta är ur en designers perspektiv. Du är nästan dömd för att skapa något så fult att ingen kan titta på det!
Det bästa sättet vi kan närma oss här är från en subtilitet. Vi vill ha långa, smidiga skift som är glädjande och inte krossade. Om vi väljer färger som är för djärva eller ljusa, bränner vi tittarnas ögon.
Sedan vi precis gått över Easer ligger mitt sinne i pasteller och det hände mig att en sådan palett kan vara perfekt för det här projektet. Jag sparkade upp Kuler, sökte efter? Pastell? och hittade följande palett.
Dessa är de färger vi ska använda för vår bakgrund. När det kombineras med ett riktigt långsamt skift, borde det ge oss en ganska mild och attraktiv effekt.
Grundläggande HTML
Att skapa grunden för vårt experiment skapade jag min typiska clich? webbdesign layout: en rubrik, underrubrik och en bild. Vi behöver verkligen inte mycket, bara nog för att göra sidan inte otroligt tråkig.