Paranna Interaction to Next Paint -arvoa luopumalla JavaScript-vierityksestä

Luo kaunis ja sulava vierityskokemus, joka ei vaikuta Core Web Vitals -arvoihin

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-02-07

Korvaa JavaScript-vieritys CSS:llä jo tänään

Tällä blogilla on hieman historiaa takanaan. Vuoteen 2017 asti ainoa tapa lisätä yhtenäinen sulava vierityskäyttäytyminen oli käyttää JavaScript-kirjastoa. Ja monet kehittäjät tekivätkin juuri niin. Core Web Vitals -arvoja ei ollut vielä olemassa ja kaikki käyttivät jQuerya pääasiallisena JavaScript-kirjastonaan.

Hypätään nyt nykyhetkeen. JavaScript-pohjaiselle ankkurivieritykselle on olemassa paljon parempia, nopeampia ja helpompia vaihtoehtoja. Core Web Vitals -konsulttina näen niitä kuitenkin edelleen joka päivä. 


Miksi JavaScript-pohjainen vieritys on 'huono'

schermafdruk van 2024 10 03 21 31 22

JavaScript-pohjainen vieritys on huono kahdesta syystä: se on monimutkaista ja se on hidasta.

Monimutkaista: JavaScript-pohjainen vieritys on tarpeettoman monimutkaista. Sinun täytyy kirjoittaa ja ylläpitää vaikeasti luettavaa koodia, ja vaikka Window.scrollTo()-metodi on helpottanut tätä huomattavasti, se on silti paljon vaikeampi ylläpitää.

Hidasta. JavaScript pyrkii estämään pääsäikeen ja on aina hitaampi kuin CSS-vastineensa.  Riippuen siitä, miten vieritysfunktio on toteutettu, se voi estää pääsäikeen melko pitkäksi aikaa ja aiheuttaa merkittävän viiveen Interaction to Next Paint -mittarissa!

Miksi CSS:n sulava vieritys on 'hyvä'

Puhuin siitä, miksi JavaScript-pohjainen vieritys on huono. CSS-pohjaiselle sulavalle vieritykselle pätee päinvastainen. Se todella on niin yksinkertaista kuin seuraavan lisääminen tyylitiedostoosi:

html{ scroll-behavior: smooth;}

Yksinkertainen ja tehokas

CSS-yksirivinen html { scroll-behavior: smooth; } on erittäin yksinkertainen toteuttaa ja tehokkaampi kuin JavaScript-pohjaiset ratkaisut. Tämä yksi koodirivi mahdollistaa sulavan vierityksen koko sivulle ilman vaikeasti ylläpidettäviä JavaScript-funktioita.

Parempi suorituskyky

CSS-pohjainen sulava vieritys käsitellään selaimen natiivisti ja se päihittää kaikissa tapauksissa JavaScript-toteutukset. Tämä on erityisen tärkeää Interaction to Next Paint (INP) -mittarin optimoinnissa, sillä se kuormittaa selaimen pääsäiettä vähemmän.

Selainyhteensopivuus

CSS:n sulavalla vierityksellä on melko erinomainen selaintuki. Vanhat selaimet, joissa sulavaa vieritystä ei tueta, palaavat yksinkertaisesti oletusarvoiseen suoraan hyppyyn ankkuriin.

Helppo mukauttaminen

CSS:n avulla voit helposti mukauttaa vierityskäyttäytymistä. Esimerkiksi scroll-margin-top-ominaisuuden avulla voit asettaa yläetäisyyden vieritettyyn elementtiin:

h1, h2, h3 {scroll-margin-top: 5rem;} 

Tai vielä helpommin 'target'-pseudoluokan avulla

:target {scroll-margin-top: 5rem;} 

Täydellinen esimerkki:

Nähdäksesi tämän koodin toiminnassa klikkaa yksinkertaisesti sivun yläosassa olevaa sisällysluetteloa. Huomaat mukavan sulavan vierityksen klikattuun ankkuriin. 

Tässä on yksinkertaistettu esimerkki, jonka voit kopioida ja käyttää uudelleen

<html>

<head>
    <title>Smooth scroll to target</title>
    <style>
        html {
            scroll-behavior: smooth;
        }
        :target {
            scroll-margin-top: 5rem;
        }
        .largedivider {
            height: 1000px;
        }

    </style>
   
</head>

<body>
    <nav>
        <a href="#target">scroll to target</a>
    </nav>
    <div class="largedivider"> -- </div>
    <h2 id="target">scroll to me</h2>
    <div class="largedivider"> -- </div>
</body>

</html>

Stop debating in Jira.

Get a definitive answer on your performance issues. I deliver a granular breakdown of your critical rendering path.

Book a Deep Dive >>

  • Definitive Answers
  • Granular Breakdown
  • Critical Path Analysis
Paranna Interaction to Next Paint -arvoa luopumalla JavaScript-vierityksestäCore Web Vitals Paranna Interaction to Next Paint -arvoa luopumalla JavaScript-vierityksestä