I denna laboration ska du öva på att skapa några visuella effekter med hjälp av egenskaperna transition
och transform
.
6A-1 - Transition
Vi börjar med några övningar på transition
, som används för att skapa en övergång vid en förändring av en stil för ett element. Det man specificerar är vilken egenskap som förändras och hur lång tid övergången ska ta
Förberedelser
- Öppna mappen L6a-1 i Visual Studio Code (VSC).
- Öppna filen index.html och style.css i VSC samt öppna sidan i Live Server.
- Studera den kod som finns i HTML- och CSS-filerna, så att du blir insatt i den.
Övergångens aktivering och sluttillstånd
- Lägg in en regel för
#testbox:hover
medborder-radius: 35px;
- Testa i webbläsaren och se att boxen får rundade hörn, då du för muspekaren över den.
Övergångens egenskaper
- Lägg in
transition-property: border-radius;
i regeln för#testbox
. - Lägg också in
transition-duration: 2s;
i samma regel.- Testa i webbläsaren och för muspekaren över boxen. Prova att variera tiden i
transition-duration
.
- Testa i webbläsaren och för muspekaren över boxen. Prova att variera tiden i
- Lägg även till
transition-timing-function: ease-in-out;
- Testa i webbläsaren och prova några olika funktioner i
transition-timing-function
. På sid. 520 i boken Learning Web Design, kan du se vilka funktioner som finns. Det kan dock vara svårt att se skillnad på dem.
- Testa i webbläsaren och prova några olika funktioner i
- Lägg till
transition-delay: 1s;
för att prova detta. Ta sedan bort egenskapen igen.- Denna egenskap lägger in en fördröjning innan övergången startar.
Flera förändringar
- Lägg in
border-width: 6px;
i regeln för#testbox:hover
och testa i webbläsaren. - Ändra till
transition-property: all;
i regeln för#testbox
och testa igen i webbläsaren.
Övergång i bilderna
- Lägg in
opacity: 0.5;
i regeln förnav img
. - Skriv också en regel för
nav img:hover
medopacity: 1;
- Lägg in
transition-property: opacity;
ochtransition-duration: 2s;
i regeln förnav img
.- 2 sekunder är kanske för lång tid, men valdes här för att övergången tydligt ska synas. Prova gärna med andra tider.
6A-2 - Transform
Med transform
kan man vrid, vända och skala ett element. Du ska först öva på detta och sedan kombinera det med transition
.
Förberedelser
- Öppna mappen L6a-2 i Visual Studio Code (VSC).
- Öppna filen index.html och style.css i VSC samt öppna sidan i Live Server.
- Studera den kod som finns i HTML- och CSS-filerna, så att du blir insatt i den.
Rotera
- Lägg in
transform: rotate(10deg);
i regeln för#nav1 img:hover
. Prova i webbläsaren. - Lägg även in
transform-origin: top left;
och prova i webbläsaren. - Prova med olika värden för båda egenskaperna.
Förskjuta
- Lägg in
transform: translate(5px, 15px);
i regeln för#nav2 img:hover
. - Prova även andra värden i egenskapen.
Skala
- Lägg in
transform: scale(2);
i regeln för#nav3 img:hover
. - Prova även
scaleX
ochscaleY
samt negativa värden, t.ex.transform: scaleX(-1);
för att spegelvända bilden.- Vill du både förstpra och spegevända bilden, kan du kombinera flera värden,
t.ex.transform: scale(2) scaleX(-1);
- Vill du både förstpra och spegevända bilden, kan du kombinera flera värden,
Vrida
- Lägg in
transform: skew(10deg, 20deg);
i regeln för#nav4 img:hover
.
Skala med en övergång
- Lägg in
transform: scale(2);
i regeln för#nav5 img:hover
. - Lägg också in
transition: transform 2s;
i regeln förnav5 img
. - Testa i webbläsaren och se hur bilderna förstoras, då du för muspekaren över dem.
- För att den bild som skalas alltid ska komma längst fram, kan du lägga in
z-index
i reglerna. Använd ett lågt värde, t.ex.1
, i regeln för#nav5 img
och ett högre värde, t.ex.100
, i regeln för#nav5 img:hover
.- Du måste också lägga in
position: relative
i regeln för#nav5 img
, omz-index
ska fungera.
- Du måste också lägga in
Förändring av två olika egenskaper
- Lägg in
transform: translate(5px, 5px);
ochbox-shadow: 1px 1px 5px #333;
i regeln för#nav6 img:hover
. - Lägg också in en första skugga med
box-shadow: 6px 6px 10px #333;
i regeln förnav6 img
. - Lägg in
transition: all 1s;
i regeln för#nav6 img
. - I detta fall gör du dels en förskjutning åt höger och nedåt med 5px, samtidigt som du gör skuggan 5px mindre.