Lyhyesti
- Parallaksiefekti luo syvyyttä liikuttamalla kerroksia eri nopeuksilla. Lähempänä olevat kerrokset liikkuvat kaukaisia nopeammin.
- Verkkosivun parallaksivierityksen voi nyt toteuttaa CSS-vieritysanimaatioilla ilman JavaScriptiä niitä tukevissa selaimissa.
- Vanhempi
background-attachment: fixed-tekniikka ei toimi iOS Safarissa, joten siihen ei kannata luottaa mobiilissa. - Laaja tai nopea parallaksiliike voi aiheuttaa epämukavuutta tasapainoelimen häiriöistä kärsiville. Poista se käytöstä, kun kävijä on valinnut vähennetyn liikkeen.
- Hienovarainen parallaksi, jossa kerrokset liikkuvat vain vähän, lisää syvyyttä viemättä huomiota sisällöltä.
Tällä sivulla
Parallaksiefekti tuo syvyyttä tasaiseen designiin liikuttamalla sen kerroksia eri nopeuksilla: tausta liikkuu hitaasti, keskitaso hieman nopeammin ja etuala nopeimmin. Samoin kaukaiset kukkulat tuntuvat matelevan junan ikkunan ohi, kun aidantolpat kiitävät vieressä. Verkkosivulla liike seuraa yleensä vieritystä. Liikegrafiikassa se tapahtuu ajan kuluessa, silmukassa tai videolla. Molemmissa paras parallaksi on pieni, hidas ja pois käytöstä kaikilla, jotka ovat pyytäneet laitteeltaan vähemmän liikettä.
Näin parallaksi luo syvyyttä
Aivot arvioivat etäisyyttä osittain suhteellisen liikkeen avulla. Kun kaksi kerrosta liikkuu samalla nopeudella, ne näyttävät yhdeltä tasaiselta pinnalta. Hitaammin liikkuva kerros taas näyttää kaukaisemmalta. Kolme kerrosta riittää yleensä uskottavaan syvyyteen.
Sisältö
Nopeus suhteessa vieritykseen
Sisältö
Sisältö
Parallaksiefekti CSS-vieritysanimaatioilla
Moderni CSS voi sitoa animaation aikaan sijaan vierityskohtaan animation-timeline-ominaisuudella. Selain suorittaa sen pääsäikeen ulkopuolella, joten liike pysyy sulavana ilman JavaScriptiä. Tuki laajenee yhä: ominaisuus toimii Chromium-selaimissa ja uudemmassa Safarissa. Tarkista selaintuki MDN:stä ja toteuta efekti lisäparannuksena. Ilman tukea sivu vain pysyy paikallaan, mikä on täysin sopiva lopputulos.
.hero {
position: relative;
overflow: clip;
isolation: isolate; /* keeps the layer inside the hero */
min-height: 80vh;
view-timeline: --hero block;
}
.hero__bg {
position: absolute;
inset: -15% 0; /* extra room so edges never show */
background:
radial-gradient(circle at 75% 20%, #7c3aed 0%, transparent 45%),
linear-gradient(170deg, #0f0b1e 0%, #1e1b4b 100%);
z-index: -1;
}
@media (prefers-reduced-motion: no-preference) {
@supports (animation-timeline: view()) {
.hero__bg {
animation: hero-depth linear both;
animation-timeline: --hero;
}
}
}
@keyframes hero-depth {
from { transform: translateY(-10%); }
to { transform: translateY(10%); }
}Liikkeen laajuus määritetään avainkehyksissä: 10 % kumpaankin suuntaan on maltillinen. Yli 20 % alkaa tuntua huvipuistolaitteelta. transform-ominaisuuden animointi top- tai background-position-ominaisuuden sijaan keventää selaimen piirtoa. CSS-liukuvärien suorituskyky kertoo, miksi suuria animoituja liukuvärejä kannattaa liikuttaa eikä piirtää uudelleen.
Muita tapoja toteuttaa parallaksivieritys
Toimintatapa
animation-timeline: view() tai scroll() sitoo avainkehykset vieritykseenHuomioitavaa
background-attachment: fixedToimintatapa
Huomioitavaa
Toimintatapa
translateZ siirtää kerroksia kauemmas, jolloin ne vierivät hitaamminHuomioitavaa
Toimintatapa
Huomioitavaa
requestAnimationFrame-kutsuaParallaksi ja vähennetty liike
Vierityksen käynnistämä laaja liike voi aiheuttaa huimausta ja pahoinvointia ihmisille, joilla on tasapainoelimen häiriöitä. WCAG:n vuorovaikutuksesta syntyvän animaation ohje edellyttää, että tällaisen liikkeen voi poistaa käytöstä. Helpoin tapa huomioida tämä on rajata parallaksi ehtoon prefers-reduced-motion: no-preference, kuten yllä olevassa koodissa. Se toimii silloin vain kävijöillä, jotka eivät ole pyytäneet vähemmän liikettä. Vähennetyn liikkeen opas käsittelee mediakyselyä ja sen testaamista.
Vältä
- Kokonaiset osiot liukumassa eri nopeuksilla
- Teksti tai painikkeet liikkuvilla kerroksilla
- Liike, joka ohittaa vähennetyn liikkeen asetuksen
- Vierityksen kaappaaminen ja nopeuden muuttaminen
- Parallaksi sivun jokaisessa osiossa
Tee näin
- Yksi hieman liikkuva taustakerros
- Sisältö tavallisessa vierityksessä
- Liike vain
no-preference-ehdolla - Selaimen oma vieritys sellaisenaan
- Parallaksi yhdessä kohdassa, yleensä pääosiossa
Parallaksi liikegrafiikassa ja videolla
Parallaksi ei kuulu vain vieritykseen. Liikkuvassa julkaisussa, silmukassa tai alkuteksteissä sama sääntö luo syvyyttä ajan kuluessa: tausta liikkuu hitaasti, valo tai hiukkaset hieman nopeammin ja sanat pysyvät paikallaan edessä. Viimeinen kohta on tärkeä. Paikallaan olevat sanat kevyesti liikkuvalla pinnalla näyttävät rauhallisilta ja varmoilta. Jos sanatkin vaeltavat, vaikutelma on levoton.
Verkkosivun pääosio, jossa on syvyyttä: taustan värikenttä liikkuu hitaasti paikallaan pysyvien sanojen takana, joten katse löytää otsikon ensin.
Hiukkaset ovat luonteva keskikerros: hiukkasefektit näyttää, miten pienet himmeät pisteet taustaa hieman nopeammassa liikkeessä luovat toisen syvyystason. Pidä kaikkien kerrosten liike hitaana ja pehmeästi kiihtyvänä. Liikegrafiikan periaatteet kertoo miksi.
Parallaksipääosion suunnittelu vaiheittain
- 1
Suunnittele ensin pysäytyskuva
Pääosion pitää näyttää valmiilta täysin liikkumattomana. Sen näkevät kävijät, joilla on vähennetty liike tai selain ilman animaatiotukea.
- 2
Erota kerrokset
Laita taustan värikenttä omalle kerrokselleen, muodot tai kuvat toiselle sekä otsikko ja painike itse sivulle.
- 3
Liikuta vain taustaa
Aloita pelkästä taustasta, joka liikkuu 10 % kumpaankin suuntaan. Lisää keskikerros vain, jos syvyys sitä tarvitsee.
- 4
Testaa puhelimella
Tarkista sulava vieritys keskihintaisella puhelimella ja varmista, ettei mikään hypähdä iOS Safarissa.
- 5
Ota vähennetty liike käyttöön ja tarkista uudelleen
Valitse järjestelmän esteettömyysasetuksista vähennetty liike ja varmista, että sivu on rauhallinen ja valmis.
Elävä liukuväri antaa taustakerrokselle enemmän kuin tasainen. Prolla saumattomaksi WebM- tai MP4-silmukaksi viety Gradientlyn Mark pääosion takana tuo sivulle taustan, joka liikkuu jo valmiiksi kevyesti ja kuuluu lunastamisen jälkeen vain sinulle. Katso myös pääosion suunnittelu ja verkkosivun pääosion taustat kokojen valintaan.
Usein kysyttyä
Mikä on parallaksiefekti?
Se luo syvyyttä liikuttamalla kerroksia eri nopeuksilla. Läheiset kerrokset liikkuvat kaukaisia nopeammin kuten todellisessakin maailmassa.
Voiko parallaksiefektin tehdä pelkällä CSS:llä?
Kyllä. CSS-vieritysanimaatiot sitovat avainkehykset vierityskohtaan ilman JavaScriptiä selaimissa, jotka tukevat animation-timeline-ominaisuutta. Vanhemmat pelkän CSS:n menetelmät käyttävät background-attachment: fixed -asetusta tai 3D-perspektiiviä.
Miksi background-attachment: fixed ei toimi iPhonessa?
iOS Safari ohittaa taustan kiinnityksen, joten tausta vierii tavallisesti. Käytä sen sijaan vieritysanimaatioita tai transformaatioihin perustuvaa tekniikkaa.
Haittaako parallaksivieritys saavutettavuutta?
Vierityksen käynnistämä laaja liike voi aiheuttaa huonovointisuutta tasapainoelimen häiriöistä kärsiville. Pidä liike hienovaraisena ja poista se käytöstä kävijän valitessa vähennetyn liikkeen.
Heikentääkö parallaksi suorituskykyä?
Ei, jos animoit transform-ominaisuutta ja annat selaimen ohjata sitä vieritysanimaatioilla. Jokaisessa vieritystapahtumassa elementtejä liikuttavat skriptit aiheuttavat nykimistä.
Kirjoittanut Gradiently
Gradientlyn tiimi. Gradiently on Markien ympärille rakennettu suunnittelutyökalu: eläviä liukuvärejä, joiden ansiosta kaikki suunnittelemasi näyttää omaltasi.
Katso profiilimme