Lietuvių

Sužinokite, kaip CSS slinkties fiksavimas apsaugo nuo turinio šuolių, gerindamas naudotojo patirtį dinamiškose svetainėse. Išnagrinėkite geriausias praktikas ir pavyzdžius.

CSS slinkties fiksavimas: turinio šuolių prevencija sklandesnei naudotojo patirčiai

Ar kada nors skaitėte straipsnį internete, kai staiga puslapis pašoka, prarandate vietą ir esate priversti slinkti atgal žemyn? Ši erzinanti patirtis, žinoma kaip „turinio šuolis“, dažnai įvyksta, kai dinaminis turinys įkeliamas virš dabartinio matymo lauko, stumdamas esamą turinį žemyn. CSS slinkties fiksavimas yra galingas įrankis kovai su šia problema, ženkliai pagerinantis naudotojo patirtį išlaikant vartotojo slinkties poziciją net keičiantis turiniui.

Turinio šuolių ir jų poveikio supratimas

Turinio šuolius paprastai sukelia asinchroninis išteklių, tokių kaip paveikslėliai, reklamos ar dinamiškai generuojamas turinys, įkėlimas. Nors šie elementai pagerina svetainės funkcionalumą ir vizualinį patrauklumą, jų vėluojantis įkėlimas gali sutrikdyti vartotojo skaitymo eigą. Staigus maketo pasikeitimas ne tik erzina, bet ir gali sumažinti įsitraukimą bei potencialiai atstumti vartotojus nuo jūsų svetainės.

Įsivaizduokite, kad skaitote naujienų straipsnį su įterptomis reklamomis. Slenkant žemyn, virš jūsų dabartinės pozicijos įkeliama reklama, stumianti jūsų skaitomą tekstą toliau žemyn puslapyje. Turite sustoti, persiorientuoti ir vėl surasti savo vietą. Šis trukdymas kenkia skaitymo patirčiai ir gali būti neįtikėtinai erzinantis, ypač mobiliuosiuose įrenginiuose su mažesniais ekranais.

Kodėl tai yra problema?

Pristatome CSS slinkties fiksavimą

CSS slinkties fiksavimas yra naršyklės funkcija, skirta automatiškai koreguoti slinkties poziciją, kai turinys keičiasi dinamiškai. Iš esmės ji „užfiksuoja“ vartotojo dabartinę slinkties poziciją prie konkretaus elemento puslapyje, užtikrindama, kad matymo laukas išliktų sufokusuotas į tą elementą, net kai turinys yra įterpiamas arba pašalinamas virš jo. Tai apsaugo nuo erzinančių šuolių ir pasislinkimų, kurie gali varginti dinamiškose svetainėse.

Pagrindinis slinkties fiksavimo mechanizmas yra stebėtinai paprastas. Kai funkcija įjungta, naršyklė stebi dokumento maketo pakeitimus. Jei aptinkamas pakeitimas, kuris paprastai pakeistų slinkties poziciją, ji automatiškai koreguoja slinkties poslinkį, kad kompensuotų, išlaikydama vartotojo matymo lauką ties tuo pačiu turiniu.

Kaip įdiegti CSS slinkties fiksavimą

Pagrindinė CSS savybė, valdanti slinkties fiksavimą, yra overflow-anchor. Šią savybę galima taikyti bet kuriam slenkančiam elementui, įskaitant ir patį <body> elementą. Štai kaip galite ją naudoti:

Slinkties fiksavimo įjungimas visam puslapiui

Norėdami įjungti slinkties fiksavimą visam tinklalapiui, galite pritaikyti overflow-anchor savybę <body> elementui:


body {
  overflow-anchor: auto;
}

Tai yra paprasčiausias ir dažnai efektyviausias būdas įdiegti slinkties fiksavimą. auto reikšmė nurodo naršyklei automatiškai valdyti slinkties fiksavimą visam dokumentui.

Slinkties fiksavimo išjungimas konkretiems elementams

Kai kuriais atvejais galbūt norėsite išjungti slinkties fiksavimą tam tikriems puslapio elementams. Pavyzdžiui, galite turėti komponentą, kuris priklauso nuo specifinio slinkties elgesio, nesuderinamo su slinkties fiksavimu. Norėdami išjungti slinkties fiksavimą konkrečiam elementui, nustatykite overflow-anchor savybę į none:


.no-scroll-anchor {
  overflow-anchor: none;
}

Tada pritaikykite .no-scroll-anchor klasę elementui, kurį norite išskirti iš slinkties fiksavimo.

Praktiniai pavyzdžiai ir naudojimo atvejai

Panagrinėkime keletą praktinių pavyzdžių, kaip slinkties fiksavimas gali būti naudojamas siekiant pagerinti naudotojo patirtį įvairių tipų svetainėse:

1. Tinklaraščiai ir naujienų straipsniai

Kaip minėta anksčiau, tinklaraščiai ir naujienų straipsniai yra pagrindiniai kandidatai slinkties fiksavimui. Įjungę slinkties fiksavimą, galite išvengti erzinančių turinio šuolių, kurie atsiranda, kai asinchroniškai įkeliami paveikslėliai ar reklamos. Tai užtikrina sklandesnę ir malonesnę skaitymo patirtį jūsų vartotojams.

Pavyzdys: Apsvarstykite tinklaraščio įrašą su įterptais paveikslėliais. Be slinkties fiksavimo tekstas šokinės, kai įsikels paveikslėliai, sutrikdydamas skaitytojo srautą. Įjungus slinkties fiksavimą, naršyklė automatiškai pakoreguos slinkties poziciją, išlaikydama tekstą stabilų ir išvengdama šuolio.

2. Socialinių tinklų srautai

Socialinių tinklų srautai dažnai įkelia naują turinį dinamiškai, kai vartotojas slenka žemyn. Be slinkties fiksavimo tai gali sukelti turinio šuolius ir erzinančią vartotojo patirtį. Įjungę slinkties fiksavimą, galite užtikrinti, kad vartotojo slinkties pozicija bus išlaikyta įkeliant naujus įrašus, sukuriant sklandžią ir nenutrūkstamą naršymo patirtį.

Pavyzdys: Įsivaizduokite, kad slenkate per savo socialinio tinklo srautą. Pasiekus puslapio apačią, automatiškai įkeliami nauji įrašai. Be slinkties fiksavimo šie nauji įrašai galėtų nustumti ką tik peržiūrėtą turinį toliau žemyn. Su slinkties fiksavimu naršyklė pakoreguos slinkties poziciją, kad jūsų peržiūrimas turinys liktų matymo lauke.

3. E. prekybos produktų sąrašai

E. prekybos svetainėse dažnai naudojamas dinaminis filtravimas ir rūšiavimas produktų sąrašams rodyti. Kai taikomi filtrai arba keičiama rūšiavimo tvarka, turinys puslapyje atnaujinamas dinamiškai. Be slinkties fiksavimo tai gali sukelti turinio šuolius ir painią vartotojo patirtį. Įjungę slinkties fiksavimą, galite užtikrinti, kad vartotojo slinkties pozicija bus išlaikyta atnaujinant produktų sąrašus, palengvinant jiems naršymą ir ieškomų produktų paiešką.

Pavyzdys: Tarkime, naršote internetinėje parduotuvėje ir taikote filtrus, kad susiaurintumėte konkretaus produkto paiešką. Kiekvieną kartą pritaikius filtrą, produktų sąrašai atnaujinami. Be slinkties fiksavimo puslapis gali grįžti į viršų, priverčiant jus vėl slinkti žemyn. Su slinkties fiksavimu puslapis liks maždaug toje pačioje pozicijoje, leisdamas tęsti naršymą be pertrūkių.

4. Vieno puslapio programos (SPA)

Vieno puslapio programos (SPA) labai priklauso nuo dinaminio turinio įkėlimo. Vartotojams naršant programoje, naujas turinys įkeliamas asinchroniškai, dažnai pakeičiant esamą turinį. Be slinkties fiksavimo tai gali sukelti dažnus turinio šuolius ir erzinančią vartotojo patirtį. Įjungę slinkties fiksavimą, galite užtikrinti, kad vartotojo slinkties pozicija bus išlaikyta keičiantis turiniui, sukuriant sklandesnę ir labiau reaguojančią programą.

Pavyzdys: Apsvarstykite SPA su keliomis sekcijomis, kurios įkeliamos dinamiškai, kai vartotojas spustelėja naršymo nuorodas. Be slinkties fiksavimo kiekvieną kartą įkėlus naują sekciją, puslapis gali grįžti į viršų. Su slinkties fiksavimu puslapis išlaikys vartotojo slinkties poziciją dabartinėje sekcijoje, sukuriant sklandesnį perėjimą tarp sekcijų.

Geriausios CSS slinkties fiksavimo naudojimo praktikos

Nors CSS slinkties fiksavimas yra galingas įrankis, svarbu jį naudoti efektyviai, kad išvengtumėte nenumatytų pasekmių. Štai keletas geriausių praktikų, kurias verta prisiminti:

Naršyklių suderinamumas

CSS slinkties fiksavimą plačiai palaiko šiuolaikinės naršyklės. Tačiau visada gera idėja patikrinti suderinamumo lentelę Can I use svetainėje, kad įsitikintumėte, jog ją palaiko naršyklės, kurias greičiausiai naudos jūsų vartotojai.

Nuo 2024 m. spalio mėn. slinkties fiksavimą palaiko:

Senesnėse naršyklėse, kurios nepalaiko slinkties fiksavimo, šis elgesys tiesiog neveiks – turinio šuoliai vis tiek vyks. Tokiais atvejais galite apsvarstyti galimybę naudoti JavaScript pagrįstus polifilus, kad suteiktumėte panašų funkcionalumą. Tačiau atminkite, kad šie polifilai gali būti sudėtingesni ir potencialiai mažiau našūs nei natūralus naršyklės įdiegimas.

Alternatyvos ir atsarginiai variantai

Nors CSS slinkties fiksavimas yra pageidaujamas sprendimas norint išvengti turinio šuolių, yra alternatyvių metodų, kuriuos galite naudoti, ypač senesnėms naršyklėms arba situacijose, kai slinkties fiksavimo nepakanka.

JavaScript pagrįsti sprendimai

Galite naudoti JavaScript, kad rankiniu būdu koreguotumėte slinkties poziciją, kai turinys pasikeičia. Šis metodas reikalauja daugiau kodo ir gali būti sudėtingesnis nei naudojant CSS slinkties fiksavimą, tačiau suteikia daugiau kontrolės slinkties elgesiui. Štai pagrindinis pavyzdys:


// Gauname dabartinę slinkties poziciją
const scrollPosition = window.pageYOffset;

// Įkeliame naują turinį
// ...

// Atkuriame slinkties poziciją
window.scrollTo(0, scrollPosition);

Šis kodo fragmentas užfiksuoja dabartinę slinkties poziciją prieš įkeliant naują turinį ir atkuria ją po to, kai turinys yra įkeltas. Tai neleidžia puslapiui grįžti į viršų.

Vietos rezervavimo elementai

Kitas būdas yra naudoti vietos rezervavimo elementus, kad būtų palikta vieta dinamiškai įkeliamam turiniui. Tai neleidžia esamam turiniui pasislinkti, kai įterpiamas naujas turinys. Pavyzdžiui, galite naudoti <div> elementą su fiksuotu aukščiu ir pločiu, kad rezervuotumėte vietą vėliau įkeliamam paveikslėliui.


<div style="width: 300px; height: 200px;">
  <img src="placeholder.gif" data-src="actual-image.jpg" alt="Image">
</div>

Šiame pavyzdyje <div> elementas rezervuoja vietą paveikslėliui, neleisdamas žemiau esančiam turiniui pasislinkti, kai paveikslėlis yra įkeliamas. Galite naudoti JavaScript, kad pakeistumėte vietos rezervavimo paveikslėlį tikruoju paveikslėliu, kai jis bus įkeltas.

Slinkties fiksavimo ir maketo stabilumo ateitis

CSS slinkties fiksavimas yra platesnių pastangų gerinti maketo stabilumą internete dalis. Cumulative Layout Shift (CLS) metrika, kuri yra pagrindinis Google Core Web Vitals komponentas, matuoja netikėtų maketo poslinkių kiekį puslapyje. Žemas CLS balas yra būtinas norint užtikrinti gerą naudotojo patirtį ir pagerinti paieškos sistemų reitingus.

Naudodami CSS slinkties fiksavimą ir kitas technikas, skirtas turinio šuoliams išvengti, galite žymiai sumažinti savo svetainės CLS balą ir pagerinti bendrą naudotojo patirtį. Naršyklėms toliau tobulėjant ir diegiant naujas maketo stabilumo funkcijas, svarbu sekti naujausias geriausias praktikas ir technikas.

Išvada

CSS slinkties fiksavimas yra vertingas įrankis, padedantis išvengti turinio šuolių ir sukurti sklandesnę naudotojo patirtį dinamiškose svetainėse. Įjungę slinkties fiksavimą, galite užtikrinti, kad jūsų vartotojai galės naršyti ir sąveikauti su jūsų svetaine be erzinančių maketo poslinkių. Tai ne tik pagerina vartotojų pasitenkinimą, bet ir gali lemti didesnį įsitraukimą bei potencialiai geresnius paieškos sistemų reitingus.

Nesvarbu, ar kuriate tinklaraštį, socialinio tinklo platformą, e. prekybos svetainę ar vieno puslapio programą, apsvarstykite galimybę įdiegti CSS slinkties fiksavimą, kad pagerintumėte naudotojo patirtį ir sukurtumėte labiau nušlifuotą bei profesionalią svetainę. Nepamirškite kruopščiai išbandyti savo įdiegimo ir derinti jį su kitomis technikomis, kad pasiektumėte geriausių įmanomų rezultatų. Pasinaudokite CSS slinkties fiksavimo galia ir atsisveikinkite su erzinančiais turinio šuoliais!