Terug naar blog

Vloeiend scrollen in actie met React: een tutorial

Vloeiend scrollen in actie met React: een tutorial

React is een open-source JavaScript-bibliotheek die wordt gebruikt voor het bouwen van futuristische website-ontwerpen en het verbeteren van gebruikersinterfaces. Vanwege de robuustheid, flexibiliteit en efficiëntie presteert het beter dan concurrerende front-end bibliotheken en frameworks. React biedt uitstekende functies en opvallende functionaliteiten die aanpassing en dynamische animatie vergemakkelijken.

In de lijst met animatiecollecties helpt vloeiend scrollen in React bij het verhogen van de interactiviteit van web-apps en het stroomlijnen van animaties. Vloeiend scrollen is een functie waarmee gebruikers naar verschillende secties van de pagina kunnen gaan met behulp van een navigatiebalk. Dat betekent dat in plaats van op een knop te drukken en meteen naar een ander deel van een vergelijkbare pagina te worden getrokken, de gebruiker naar een doel wordt geleid via een scroll-animatie.

In deze handleiding zullen we u door de stappen leiden voor het implementeren van vloeiend scrollen met behulp van React.

Laten we beginnen!

Vereisten

Om deze tutorial te volgen, heeft u het volgende nodig:

De basisinstallatie: Installeer react-scroll

In deze beginnersvriendelijke handleiding ontwerpen we een eenvoudige applicatie met behulp van react-scroll. Als u vertrouwd bent met de React-basisprincipes en ernaar uitkijkt om uw kennis over react-scroll-functies te verbeteren, raadpleeg dan deze samengevatte stappen.

Installeer eerst react-scroll met het volgende commando:

Next, import the react-scroll package:

Voeg daarna de <Link />-component in die zich op een specifieke sectie van de app richt:

Laten we verder gaan en een React-applicatie ontwerpen met vloeiend scrollen.

Stap 1: Kloon en voer de React-app uit

In onze handleiding gebruiken we het starter React-project dat een navigatiebalk bovenaan bevat. Daar ziet u vijf unieke <sections> die achter elkaar zijn gerangschikt.

Momenteel zijn de links in de navigatiebalk anker-tags. We moeten deze echter binnenkort bijwerken om vloeiend scrollen mogelijk te maken. Volg de React With Smooth Scrolling-pagina om naar de projectrepository te navigeren. Het is belangrijk om op te merken dat de link voor de start-branch is. De master-branch bevat alle voltooide wijzigingen. Bij het openen van de URL ziet u de repository:

Smooth Scrolling in Action Using React: A Tutorial 1

Op de repositorypagina ziet u de groene knop Code. DRUK op de dropdown-pijl:

Smooth Scrolling in Action Using React: A Tutorial 2

Als u op de pijl klikt, ziet u de HTTP link:

Smooth Scrolling in Action Using React: A Tutorial 3

Ga nu naar uw git-terminal en gebruik het volgende commando om het project te clonen op uw lokale machine:

In de map src/Components vindt u een Navbar.js-bestand dat de <Navbar> bevat met nav-items die overeenkomen met vijf unieke <Section>'s die achter elkaar zijn gerangschikt:

Navigeer vervolgens naar het App.js bestand in de src map. Daar zul je zien dat de <Navbar> is geplaatst samen met de vijf <Section>s:

Standaard bevat elk <Section>-component een titel en ondertitel.

  • DRY-principe in actie

Omdat we dummytekst gebruiken voor onze handleiding, voegen we een dummyText.js-bestand toe om tijd te besparen en herhaling te verminderen. Gebruik het nieuw aangemaakte JavaScript-bestand om door te geven aan elk <Section>-element.

  • Installeer React

Gebruik de volgende opdracht om de app te RUNNEN :

Het runnen van de rpm start je applicatie in ontwikkelingsmodus. Ga naar localhost:3000 en controleer of de app op je systeem draait:

Smooth Scrolling in Action Using React: A Tutorial 4

Nu onze app draait, gaan we verder en installeren we react-scroll in de volgende stap.

Stap 2: Installeer en configureer React-Scroll

Eerst moet je de package op Node Package Manager bezoeken om react-scroll te downloaden. Op het moment van schrijven van deze handleiding gebruiken we de meest recente release van react-scroll , 1.8.7. Zorg ervoor dat je de nieuwste versie downloadt, mocht er in de toekomst een update zijn:

RUN de volgende opdracht om react-scroll:

Ga daarna naar het Navbar.js-bestand en importeer Link en animateScroll van react-scroll. Voor de eenvoud en het gebruiksgemak houden we animateScroll aan als scroll:

Werk daarna de nav-items bij om het <Link>-component te gebruiken. Je zult veel eigenschappen zien staan in het <Link> component dat triviaal is voor onze handleiding. Je kunt deze eigenschappen echter verkennen door de documentatiepagina.

Enkele essentiële eigenschappen die je aandacht verdienen:

  • activeClass – De klasse die wordt gebruikt wanneer een element actief is.

  • to – Informeert het opgegeven doel waarnaar moet worden gescrold.

    • De to functie is cruciaal omdat deze het component vertelt naar welk element moet worden gescrold.

  • spy: Wijst aan om de Link te selecteren wanneer de scroll zich op de doelpositie bevindt.

  • smooth: Animeert het scrollen.

  • offset: Scrolt extra px zoals bijvoorbeeld padding.

    • Je kunt ook offset gebruiken om een extra hoeveelheid scrollen te definiëren om bij een individuele <Section>.

  • duration: Animatie-scrolltijd die een getal of een functie kan zijn.

Hier is een illustratie van de functies die voor elk <Link> component kunnen worden gebruikt. Het enige onderscheidende kenmerk is de to functie, aangezien ze allemaal naar verschillende <Section>s:

Overweeg om alle nav-items bij te werken. Nadat alle items succesvol zijn toegevoegd, ga je terug naar de browser om het live vloeiende scrollen te bekijken.

Stap 3: Actieve links stylen

In deze stap gebruiken we CSS eigenschappen om ons codeblok opnieuw te ontwerpen en er stijlvol uit te laten zien. De activeClass functie stelt je in staat om een klasse te definiëren en het <Link> component toe te passen wanneer het to element actief is. Als de <Link> die je gebruikt de weergave van het to element bovenaan de pagina heeft, beschouw de <Link> dan als actief. Klik op de <Link> of scrol handmatig omlaag naar de <Section> om de <Link>.

Laten we dit testen en kijken hoe het werkt. Open de Chrome DevTools en inspecteer de vijfde <Link> zoals hieronder gemarkeerd. Klik op de <Link> of scrol handmatig de <Section> naar het onderste deel van de pagina, en je zult zien dat de actieve klasse wordt toegepast:

Maak als extra stap een actieve klasse aan en onderstreep de link. Voeg vervolgens dit kleine blokje CSS toe in het App.css bestand in de src map:

Vernieuw daarna je browser. Scrol een beetje rond en je zult merken dat de opgegeven <Link> nu onderstreept is:

Stap 4: Meer functies toevoegen

Naast de hierboven gebruikte eigenschappen zijn er andere functionaliteiten zoals scrollToTop, scrollToBottom, om er maar een paar te noemen, die je kunt gebruiken. Je kunt deze functies rechtstreeks aanroepen en hun acties expliciet beheren. Wat deze functionaliteiten betreft, brengt het app-logo in een navigatiebalk je natuurlijk naar de bovenkant van de startpagina.

Gebruik de scrollToTop functie om een click-handler toe te voegen aan het nav-logo om de gebruiker terug naar de bovenkant van de pagina te scrollen:

Gebruik de scrollToTop functie om een click-handler toe te voegen aan het nav-logo om de gebruiker naar de onderkant van de pagina te scrollen:

Terug in de browser kun je nu naar beneden scrollen op de pagina, op het logo in de navigatiebalk klikken en terugkeren naar het bovenste deel van de pagina.

Conclusie

Vloeiend scrollen is een van die functionaliteiten die veel visuele waarde kunnen toevoegen aan een web-app. Het react-scroll pakket stelt je in staat om deze functie te benutten zonder de enorme overhead.

Als volgende stap in je leerervaring kun je een kijkje nemen naar meer React- en JavaScript-tutorials die je kunt vinden op onze blog:

Veel computerplezier!

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.