Glat rulning er en teknik, der bruges i webudvikling til at skabe en flydende rulningsoplevelse for brugerne. Det forbedrer navigationen på en webside ved at animere rullebevægelsen i stedet for standard-abrupte spring.
Denne omfattende guide til webudviklere hjælper dig med at implementere jævn rulning ved hjælp af JavaScript.
Glat rulning er, når en webside ruller jævnt til den ønskede sektion, i stedet for at hoppe dertil med det samme. Dette gør rulleoplevelsen mere behagelig og problemfri for brugeren.
Indholdsfortegnelse
Fordelene ved glat rulning
Jævn rulning kan forbedre brugeroplevelsen af en webside på flere måder:
- Det forbedrer den visuelle tiltrækningskraft ved at eliminere bratte og rystende scroll-spring og tilføjer et strejf af elegance.
- Det tilskynder brugerengagement ved at give en flydende og problemfri rulleoplevelse. Dette motiverer igen brugerne til at udforske indholdet yderligere.
- Endelig gør jævn rulning navigation lettere for brugerne, især når de har at gøre med lange websider eller flytter mellem forskellige sektioner.
For at implementere jævn rulning kan du ændre standard rulningsadfærd ved hjælp af JavaScript.
HTML struktur
Først skal du oprette de nødvendige markup-elementer til de forskellige visningsporte og navigationen for at rulle mellem 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 består af en navigationslinje med tre anker-tags. Href-attributten for hvert anker angiver målsektionens unikke identifikator (f.eks. sektion1, sektion2, sektion3). Dette sikrer, at hvert link, du klikker på, navigerer til det tilsvarende målelement.
CSS Styling
Anvend derefter noget CSS for at gøre siden synligt tiltalende og organiseret. Tilføj følgende til 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 gengive linkene som en række af knapper og hver sektion som et element i fuld højde. Men bemærk, hvordan et klik på et link får browseren til øjeblikkeligt at hoppe til den tilsvarende sektion uden animation.
JavaScript implementering
For at tilføje en jævn animation, når du klikker på et anker-tag, skal du bruge scrollIntoView()-metoden. ScrollIntoView()-metoden er en indbygget JavaScript-metode af Element-klassen, der giver dig mulighed for at rulle et element ind i det synlige område af browservinduet.
Når du kalder denne metode, justerer browseren rullepositionen af elementets beholder (såsom vinduet eller en rullebar beholder) for at gøre elementet synligt.
Tilføj din JavaScript-kode til filen script.js. Start med at lytte efter, at DOMContentLoaded-begivenheden udløses, før du gør noget andet. Dette sikrer, at tilbagekaldet kun kører, når DOM’en er fuldt indlæst og klar til at manipulere.
document.addEventListener("DOMContentLoaded", makeLinksSmooth);
Definer derefter makeLinksSmooth()-funktionen. Start med at vælge ankermærkerne i navigationen, da du vil ændre deres adfærd. Gentag derefter hvert link og tilføj en begivenhedslytter til dens klikbegivenhed.
function makeLinksSmooth() {
const navLinks = document.querySelectorAll("nav a");navLinks.forEach((link) => {
link.addEventListener("click", smoothScroll);
});
}
Til sidst skal du definere smoothScroll()-funktionen, som tager et hændelseslytterobjekt. Kald preventDefault() for at sikre, at browseren ikke udfører sin standardhandling, når du klikker på linket. Den følgende kode erstatter den.
Grib href-værdien af det aktuelle ankertag og gem det i en variabel. Denne værdi skal være id’et for målsektionen med præfikset “#”, så brug den til at vælge sektionens element via querySelector(). Hvis targetElement er til stede, skal du køre dets scrollIntoView-metode og videregive den “glatte” adfærd i en objektparameter for at fuldfø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 din færdige webside rulle glat til hver sektion, når du klikker på et link:
For yderligere at forbedre den glatte rulleoplevelse kan du finjustere visse aspekter.
Justering af rulleposition
Du kan justere den lodrette position af rullen ved hjælp af blokegenskaben for indstillingsargumentet. Brug værdier som “start”, “center” eller “slut” til at identificere den del af målelementet, der skal rulles til:
targetElement.scrollIntoView({ behavior: "smooth", block: "end" });
Tilføjelse af lempende effekter
Anvend lette effekter på rulleanimationen for at skabe en mere naturlig og visuelt tiltalende overgang. Lempende funktioner såsom ease-in, ease-out eller brugerdefinerede cubic-bezier-kurver kan styre rullebevægelsens acceleration og deceleration. Du kan bruge en brugerdefineret timing-funktion med CSS-egenskaben med rulleadfærd eller et JavaScript-bibliotek såsom “smooth-scroll” for at opnå det samme resultat.
html {
scroll-behavior: smooth;
scroll-behavior: cubic-bezier(0.42, 0, 0.58, 1);
}
Sørg for, at din implementering af jævn rulning fungerer konsekvent på tværs af forskellige browsere. Test og håndter eventuelle browserspecifikke særheder eller uoverensstemmelser, der måtte opstå.
Du kan bruge en hjemmeside som f.eks Kan jeg bruge at teste browserunderstøttelse, når du bygger. Overvej at bruge et JavaScript-bibliotek eller polyfill for at sikre kompatibilitet på tværs af browsere og give en problemfri oplevelse for alle brugere.
Glat rulning tilføjer et strejf af elegance og forbedrer brugeroplevelsen ved at skabe en flydende og visuelt tiltalende rulningseffekt. Ved at følge de trin, der er beskrevet i denne vejledning, kan webudviklere implementere jævn rulning ved hjælp af JavaScript.
Finjustering af rulleadfærden, tilføjelse af lette effekter og sikring af kompatibilitet på tværs af browsere vil yderligere forbedre den glatte rulningsoplevelse, hvilket gør dine websider mere engagerende og behagelige at navigere i.