En guide for webutviklere

Jevn rulling er en teknikk som brukes i nettutvikling for å skape en flytende rulleopplevelse for brukere. Det forbedrer navigasjonen på en nettside ved å animere rullebevegelsen i stedet for standard brå hopp.

Denne omfattende veiledningen for webutviklere vil hjelpe deg med å implementere jevn rulling ved hjelp av JavaScript.

Jevn rulling er når en nettside ruller jevnt til ønsket del, i stedet for å hoppe dit umiddelbart. Dette gjør rulleopplevelsen mer behagelig og sømløs for brukeren.

Fordelene med jevn rulling

Jevn rulling kan forbedre brukeropplevelsen av en nettside på flere måter:

  • Den forbedrer den visuelle appellen ved å eliminere brå og skurrende rullehopp, og tilfører et snev av eleganse.
  • Det oppmuntrer brukerengasjement ved å gi en flytende og sømløs rulleopplevelse. Dette motiverer igjen brukerne til å utforske innholdet videre.
  • Til slutt, jevn rulling gjør navigeringen enklere for brukere, spesielt når de arbeider med lange nettsider eller flytter mellom forskjellige seksjoner.

For å implementere jevn rulling kan du endre standard rulleoppførsel ved å bruke JavaScript.

HTML-struktur

Lag først de nødvendige markup-elementene for de forskjellige visningsportene og navigasjonen for å bla mellom dem.

 <!DOCTYPE html> 
<html lang="en">

<head>
 <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="https://wilku.top/a-guide-for-web-developers/./style.css" />
  <title>Smooth Scrolling Guide for Web Developers</title>
</head>

<body>
  <nav>
    <ul>
      <li><a href="#section1">Section 1</a></li>
      <li><a href="#section2">Section 2</a></li>
      <li><a href="#section3">Section 3</a></li>
    </ul>
  </nav>

  <section id="section1">
    <h2>Section 1</h2>
  </section>

  <section id="section2">
    <h2>Section 2</h2>
  </section>

  <section id="section3">
    <h2>Section 3</h2>
  </section>

  <script src="https://wilku.top/a-guide-for-web-developers/./script.js"></script>
</body>

</html>

Denne HTML-koden består av en navigasjonslinje som inneholder tre ankermerker. Href-attributtet til hvert anker spesifiserer målseksjonens unike identifikator (f.eks. seksjon1, seksjon2, seksjon3). Dette sikrer at hver lenke du klikker på, navigerer til det tilsvarende målelementet.

  Hvordan legge til signatur i et Word-dokument?

CSS-styling

Deretter bruker du litt CSS for å gjøre siden synlig tiltalende og organisert. Legg til følgende i style.css:

 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

nav {
  background: #fff;
  box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.25);
  position: sticky;
  top: 0;
  padding: 30px;
}

nav ul {
  display: flex;
  gap: 10px;
  justify-content: center;
}

nav ul li {
  list-style: none;
}

nav ul li a {
  border-radius: 5px;
  border: 1.5px solid #909090;
  text-decoration: none;
  color: #333;
  padding: 10px 20px;
}

section {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

Dette vil gjengi koblingene som en rad med knapper og hver seksjon som et element i full høyde. Men legg merke til hvordan et klikk på en lenke får nettleseren til å hoppe til den tilsvarende delen uten animasjon.

JavaScript-implementering

For å legge til en jevn animasjon når du klikker på en ankerkode, bruk scrollIntoView()-metoden. ScrollIntoView()-metoden er en innebygd JavaScript-metode av Element-klassen som lar deg rulle et element inn i det synlige området i nettleservinduet.

  Noen flere Mac OS X-tips du kan prøve denne helgen

Når du kaller denne metoden, justerer nettleseren rulleposisjonen til elementets beholder (som vinduet eller en rullbar beholder) for å gjøre elementet synlig.

Legg til JavaScript-koden din i script.js-filen. Begynn med å lytte etter at DOMContentLoaded-hendelsen utløses før du gjør noe annet. Dette sikrer at tilbakeringingen bare kjører når DOM-en er fulllastet og klar til å manipuleres.

 document.addEventListener("DOMContentLoaded", makeLinksSmooth); 

Definer deretter makeLinksSmooth()-funksjonen. Start med å velge ankertaggene i navigasjonen, siden du vil endre oppførselen deres. Deretter gjentar du hver lenke og legger til en hendelseslytter for klikkhendelsen.

 function makeLinksSmooth() { 
  const navLinks = document.querySelectorAll("nav a");

  navLinks.forEach((link) => {
    link.addEventListener("click", smoothScroll);
  });
}

Til slutt, definer smoothScroll()-funksjonen som tar et hendelseslytterobjekt. Ring preventDefault() for å sikre at nettleseren ikke utfører standardhandlingen når du klikker på koblingen. Koden som følger vil erstatte den.

Ta tak i href-verdien til gjeldende ankertag og lagre den i en variabel. Denne verdien skal være ID-en til målseksjonen, med prefikset «#», så bruk den til å velge seksjonens element via querySelector(). Hvis targetElementet er tilstede, kjør scrollIntoView-metoden og send «glatt» oppførselen i en objektparameter for å fullføre effekten.

 function smoothScroll(e) {
  e.preventDefault();
  const targetId = this.getAttribute("href");
  const targetElement = document.querySelector(targetId);

  if (targetElement) {
    targetElement.scrollIntoView({ behavior: "smooth", });
  }
}

Med det vil den ferdige nettsiden rulle jevnt til hver seksjon når du klikker på en lenke:

For å forbedre den jevne rulleopplevelsen ytterligere, kan du finjustere visse aspekter.

  Reparer Hulu som ikke fungerer på Samsung TV

Justere rulleposisjon

Du kan justere den vertikale posisjonen til rullen ved å bruke blokkegenskapen til innstillingsargumentet. Bruk verdier som «start», «senter» eller «slutt» for å identifisere delen av målelementet du skal rulle til:

 targetElement.scrollIntoView({ behavior: "smooth", block: "end" }); 

Legge til lettelseseffekter

Bruk forenklingseffekter på rulleanimasjonen for å skape en mer naturlig og visuelt tiltalende overgang. Lette funksjoner som ease-in, ease-out eller tilpassede cubic-bezier-kurver kan kontrollere rullebevegelsens akselerasjon og retardasjon. Du kan bruke en tilpasset tidsfunksjon med CSS-egenskapen for rulleoppførsel eller et JavaScript-bibliotek, for eksempel «smooth-scroll» for å oppnå samme resultat.

  
html {
  scroll-behavior: smooth;

  
  scroll-behavior: cubic-bezier(0.42, 0, 0.58, 1);
}

Sørg for at implementeringen av jevn rulling fungerer konsekvent på tvers av ulike nettlesere. Test og håndter eventuelle nettleserspesifikke særheter eller inkonsekvenser som kan oppstå.

Du kan bruke et nettsted som Kan jeg bruke for å teste nettleserstøtte når du bygger. Vurder å bruke et JavaScript-bibliotek eller polyfill for å sikre kompatibilitet på tvers av nettlesere og gi en sømløs opplevelse for alle brukere.

Jevn rulling gir et snev av eleganse og forbedrer brukeropplevelsen ved å skape en flytende og visuelt behagelig rulleeffekt. Ved å følge trinnene som er skissert i denne veiledningen, kan nettutviklere implementere jevn rulling ved hjelp av JavaScript.

Finjustering av rulleadferden, tilføyende lettelseseffekter og sikring av kompatibilitet på tvers av nettlesere vil ytterligere forbedre den jevne rulleopplevelsen, og gjøre nettsidene dine mer engasjerende og morsommere å navigere.