Skapa en animerad målsida med delad skärm

Författare: Peter Berry
Skapelsedatum: 13 Juli 2021
Uppdatera Datum: 13 Maj 2024
Anonim
Skapa en animerad målsida med delad skärm - Kreativ
Skapa en animerad målsida med delad skärm - Kreativ

Innehåll

Din målsida är ett viktigt inslag i din webbplatslayout. Det är den första verkliga möjligheten du har att presentera ditt företag eller den produkt du säljer, så dess design är nyckeln. Målsidor är utformade med ett enda fokuserat mål som kallas en uppmaning till handling (CTA). Användningen av färger och bilder för att komplettera uppmaningarna till handling och användarupplevelsen är ett måste.

  • Se den fungerande CodePen för den här handledningen

I den här handledningen går vi igenom hur man bygger en engagerande målsida för ett fiktivt modemärke. Det kommer att vara centrerat kring en delad skärmdesign med stora bilder och animerade övergångar som händer på svävaren.Den här sidan kommer att ha två tydliga uppmaningsknappar och vi använder HTML, Sass för styling och en touch av vanilj JavaScript som använder ES6-syntaxen (kom ihåg att se till att ditt webbhotell passar dina webbplatsbehov). För komplicerat? Skapa en webbplats utan behov av kod, prova en enkel webbplatsbyggare.


01. Kom igång

Om du använder CodePen, se till att CSS är inställt på 'SCSS' i penninställningarna. Du kan göra denna ändring genom att klicka på inställningsfliken, välja ”CSS” och ändra CSS Preprocessor till SCSS i rullgardinsalternativen.

Sedan kan vi börja lägga till i vår HTML. Vi kommer att slå in ett avsnitt som heter 'vänster' och ett avsnitt som heter 'höger' i en behållarklass, med båda sektionerna en klass 'skärm'.

div> avsnitt> / avsnitt> avsnitt> / avsnitt> / div>

02. Avsluta HTML

För att slutföra vår HTML lägger vi till en titel för varje avsnitt med hjälp av en h1 märka. Under det måste vi lägga till en knapp som länkar till en annan sida om detta var ett verkligt projekt. Vi kommer att ge detta en klass av knapp för att hålla saker trevliga och enkla.


div> avsnitt> h1> Herrmode / h1> knapp> a href = "#"> Läs mer / a> / knapp> / sektion> avsnitt> h1> Dammode / h1> knapp> a href = "#"> Lär dig Mer / a> / knapp> / avsnitt>

03. Utforska Sass-variabler

Det enda vi alla älskar med Sass är användningen av variabler. Även om inbyggda CSS-variabler får mer stöd kommer vi att hålla saker säkra genom att använda Sass. Vi kommer att sätta dessa högst upp på vår .scss, och du kan välja vilka färger du vill, men använda rgba värden kommer att ge oss mer flexibilitet.

/ * * Variabler * * / $ container-BgColor: # 444; $ left-bgColor: rgba (136, 226, 247, 0.7); $ vänster-knapp-svävar: rgba (94, 226, 247, 0.7); $ right-bgColor: rgba (227, 140, 219, 0,8); $ höger-knapp-sväva: rgba (255, 140, 219, 0.7); $ svävarbredd: 75%; $ liten bredd: 25%; $ animateSpeed: 1000 ms;

04. Justera kroppsstilen

För det första kommer vi att rensa all standard vaddering och marginal i kroppen och sedan ställa in teckensnittsfamiljen till Open Sans. Detta påverkar bara knappen, så det spelar ingen roll för vilket typsnitt vi använder. Sedan ställer vi in ​​bredd och höjd till 100% och se till att allt som rinner över på X-axeln blir dolt.


html, body {padding: 0; marginal: 0; font-family: 'Open Sans', sans-serif; bredd: 100%; höjd: 100%; overflow-x: dold; }

05. Stil sektionstitlarna

Det är dags att välja ett Google-teckensnitt för sektionstitlarna - vi har valt Playfair Display. Använd sedan translateX vi kan se till att sektionstitlarna alltid är centrerade på X-axeln.

h1 {font-size: 5rem; färg: #fff; position: absolut; vänster: 50%; topp: 20%; transform: translateX (-50%); white-space: nowrap; font-family: 'Playfair Display', serif; }

06. Få uppmaningarna att sticka ut

Våra knappar fungerar som våra uppmaningar till handling, så dessa måste vara stora, djärva och placerade där de är lätta att klicka. Båda knapparna har en vit kant och en intressant övergångseffekt. Standardstilarna för båda knapparna kommer att vara desamma, men vi ändrar deras färger när du svävar.

.knapp {display: block; position: absolut; vänster: 50%; topp: 50%; höjd: 2.6rem; stoppning: 1.2rem; bredd: 15rem; textjustera: centrum; färg vit; gräns: 3px fast #fff; gränsradie: 4 pixlar; font-vikt: 600; text-transform: versaler; text-dekoration: ingen; transform: translateX (-50%); övergång: alla .2s;

Huvudknapparna kommer att ha en fin enkel svävareffekt och vi kommer att använda Sass-variablerna som vi angav för färgen, som kommer att ha en liknande färg som bakgrunden på sidan.

.screen.left .button: sväva {bakgrundsfärg: $ vänster-knapp-sväva; border-color: $ left-button-hover; } .screen.right .button: sväva {bakgrundsfärg: $ höger knapp-sväva; border-color: $ höger-knapp-svävar;

07. Ställ in behållarens bakgrund och skärmar

Containerklassen kommer att fungera som vår sidomslag och vi kommer att ställa in positionen för denna till relativt, helt enkelt för att vi vill placera skärmarna till absolut positionering. Vi kommer att ge behållaren en standardbakgrundsfärg, men detta kommer naturligtvis inte att ses eftersom vi kommer att ställa in olika färger på båda skärmbakgrunderna.

.container {position: relativ; bredd: 100%; höjd: 100%; bakgrund: $ container-BgColor; .screen {position: absolut; bredd: 50%; höjd: 100%; överflöd: dold; }}

08. Lägg till bakgrundsbilder

Både vänster och höger sektion visar en bild och du kan hitta royaltyfria stockbilder från webbplatser som Unsplash, Pixabay eller Pexels (som jag har använt i den här guiden). För att göra det enklare har jag använt en gratis tjänst för webbhotell och delning som heter imgbb som vi kan länka till i vårt CSS.

.screen.left {vänster: 0; bakgrund: url (’https://preview.ibb.co/cpabRm/pexels_photo_450212_1.webp’) center center no-repeat; bakgrundsstorlek: omslag; &: före {position: absolut; innehåll: ""; bredd: 100%; höjd: 100%; bakgrund: $ left-bgColor; }}

På höger sida av sidan visas också en bakgrundsbild med imgbb, och vi ställer in bakgrundsfärgen till rosa. Återigen ställer vi bakgrundsstorleken till omslag. Detta gör att vi kan täcka hela det innehållande elementet, vilket i vårt fall är .skärm klass.

.screen.right {höger: 0; bakgrund: url (’https://preview.ibb.co/mToPCR/seth_doyle_82563_1.webp’) center center no-repeat; bakgrundsstorlek: omslag; &: före {position: absolut; innehåll: ""; bredd: 100%; höjd: 100%; bakgrund: $ right-bgColor; }}

09. Lägg till övergångar och svävaffekter

Animationshastigheten för vår svävareffekt på båda skärmarna styrs av en övergång som håller värdet på vår variabel $ animateSpeed, vilket är 1000 ms (en sekund). Då avslutar vi med att ge animationen lättare, vilket är lätt och in och ut som hjälper oss att få en mjukare animering.

.screen.left, .screen.right, .screen.right: before, .screen.left: före {övergång: $ animateSpeed ​​all eas-in-out; }

Vad vi vill ska hända nu är att när du svävar över den vänstra skärmen kommer det att läggas till en klass i det avsnittet med JavaScript (som vi kommer att skriva i ett senare steg). När den här klassen läggs till sträcker sig skärmen till oavsett bredden på variabeln som vi angav - vilken kommer att vara 75%, och sedan kommer höger sida att ställas in på den mindre breddvariabeln (25%).

. vänster. vänster. vänster {bredd: $ svävarbredd; }. över vänster. höger {bredd: $ liten bredd; }. över vänster. höger: före {z-index: 2; }

Detta fungerar exakt på samma sätt som till vänster, där en ny klass läggs till på musen med JavaScript och den högra skärmen sträcker sig därefter. Vi måste också se till att z-index är satt till 2 så CTA-knappen blir mer framträdande.

.hover-right .right {width: $ hover-width; }. höger-höger. vänster {bredd: $ liten bredd; }. höger-höger. vänster: före {z-index: 2; }

10. Gå till JavaScript

Vi kommer att använda en touch av vanilj JavaScript för att hjälpa oss lägga till och ta bort CSS-klasser och vi kommer också att använda några av de nya ES6-funktionerna. Det första vi behöver göra är att deklarera några konstanta variabler.

Eftersom vi kommer att använda dokumentera mer än en gång kommer vi att ställa in en konstant variabel som kallas dok och lagra dokumentet i det så att vi kan hålla ordet ”dokument” snyggt och kort.

const doc = dokument;

Nu måste vi ställa in ytterligare tre konstanter som kommer att lagra .rätt, .vänster och .behållare väljare. Anledningen till att vi använder konstanter är att vi vet att vi inte vill ändra värdet på dessa, så det är vettigt att använda konstanter. Med dessa inställda kan vi fortsätta och lägga till några mushändelser till dem.

const right = doc.querySelector (". right"); const left = doc.querySelector (". left"); const container = doc.querySelector (". container");

Använda vänster konstant variabel som vi förklarade i det sista steget, kan vi nu lägga till en händelse lyssnare till den. Detta evenemang kommer att bli musenter händelse och istället för att använda en återuppringningsfunktion använder vi en annan ES6-funktion som heter Pilfunktioner ’(() =>).

// lägger till en klass i behållarelementet på hover left.addEventListener ("mouseenter", () => {container.classList.add ("hover-left");});

11. Lägg till och ta bort en klass

I det sista steget lade vår eventlyssnare till en musenter händelse som riktar sig till huvudbehållarklassen och lägger till en ny klass som kallas sväva-vänster till vänster sektionselement. Med det här kallade tillagda måste vi nu ta bort det när vi svävar av det. Vi gör detta med hjälp av mouseleave händelse och .avlägsna() metod.

// tar bort klassen som har lagts till på hover left.addEventListener ("mouseleave", () => {container.classList.remove ("hover-left");});

Hittills har vi gjort allt på vänster skärm. Nu kommer vi att avsluta JavaScript och lägga till och ta bort klasser på höger sektionselement. Återigen har vi använt pilfunktionens syntax här för att hålla allt snyggt och snyggt.

right.addEventListener ("mouseenter", () => {container.classList.add ("hover-right");}); right.addEventListener ("mouseleave", () => {container.classList.remove ("hover-right");});

12. Gör det lyhört

Inget projekt - oavsett hur stort eller litet - bör undvika att bli lyhörd. Så i det här steget kommer vi att lägga till några mediefrågor i vår CSS och göra detta lilla projekt så anpassningsbart till mobila enheter som möjligt. Det är värt att kolla in den ursprungliga CodePen för att se hur detta fungerar.

@media (max-bredd: 800 pixlar) {h1 {font-size: 2rem; } .knapp {bredd: 12rem; }

Vi har försäkrat oss om att teckensnittet och knapparna kommer att minska när bredden på vår sida kommer ner till 800 pixlar. Så för att avsluta sakerna vill vi också rikta in höjden och se till att våra knappar rör sig nedåt på sidan när sidhöjden blir under 700 pixlar.

@media (max-höjd: 700px) {.knapp {topp: 70%; }}

Vill du spara dina sidor? Exportera dem som PDF-filer och spara dem i säkert molnlagring.

Webbdesign händelse Generera London återvänder den 19-21 september 2018 och erbjuder ett fullsatt schema med branschledande talare, en hel dag med workshops och värdefulla nätverksmöjligheter - missa inte det. Skaffa din Generate-biljett nu.

Denna artikel publicerades ursprungligen i nettotidningen nummer 305. Prenumerera nu.  

Nya Inlägg
Viktig JavaScript: de fem bästa grafiska biblioteken
Läs Mer

Viktig JavaScript: de fem bästa grafiska biblioteken

För t nyligen har vi kunnat överväga Java cript för grafi kt arbete, om att rita diagram eller kan ke till och med HTML5- pel. Bättre Java cript-motorer och tändigt f...
Skapa uppsättningar produktikoner i Illustrator
Läs Mer

Skapa uppsättningar produktikoner i Illustrator

Illu trerade ikoner kan vara ett utmärkt till kott till din de ignportfölj, oav ett om du inkluderar dem för att nå en ny grupp av potentiella kunder eller för att lägga ...
5 kontraintuitiva konverteringstrick
Läs Mer

5 kontraintuitiva konverteringstrick

Omvandlingar är ofta en tydlig drivkraft för vin t. Det är ingen överra kning då att ivriga utvecklare religiö t te tar ina webbplat er och amman täller datavi uali ...