15-Minuten-Ripple-Effekt Button in React | Aymen El Kani | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

15-Minuten-Ripple-Effekt Button in React

teacher avatar Aymen El Kani, software engineer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Willkommen und Kursübersicht

      0:53

    • 2.

      Setup: React-App erstellen

      1:14

    • 3.

      Vorbereiten der Schaltflächenkomponente

      1:36

    • 4.

      Ansatz für Anfänger: grundlegender Ripple-Animationseffekt

      2:39

    • 5.

      Fortgeschrittener-Ansatz: Profi-Ripple-Animationstechniken

      6:55

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

1

Teilnehmer:in

--

Projekte

Über diesen Kurs

In diesem schnelllebigen, projektbasierten Kurs erstellst du einen interaktiven Button mit einer atemberaubenden Wellen Animation mit React.

Überspringe lange Vorlesungen – dieser Mikrokurs ist so konzipiert, dass du wirkungsvolle Lektionen erhältst und direkt auf den Punkt kommen. Du beginnst mit einer grundlegenden Implementierung und aktualisierst sie dann mit fortgeschrittenen React-Hooks und ausgefeilten CSS-Animationen.

Am Ende des Kurses verfügst du über eine voll funktionsfähige, auffällige Schaltflächenkomponente, die deine Benutzeroberfläche verbessert und deine Programmierkenntnisse verbessert. Ganz gleich, ob das projektbasierte Lernen neu für dich ist oder du deine Kenntnisse im Frontend-Bereich verbessern möchtest, du lernst praktische Techniken kennen, die du sofort auf deine eigenen Projekte anwenden kannst.


Triff deine:n Kursleiter:in

Teacher Profile Image

Aymen El Kani

software engineer

Kursleiter:in
Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Willkommen und Kursübersicht: Willkommen zu diesem Kurs. In nur 15 Minuten lernen Sie, wie Sie mit React eine fantastische Abstoßanimation auf einer Schaltfläche erstellen React eine fantastische Abstoßanimation auf einer Schaltfläche erstellen Hier sind zwei Ansätze, die Sie erwarten können. Wir werden zunächst kurz eine Basisversion überprüfen , die die Kernidee zeigt. Wenn Sie auf die Schaltfläche klicken, erscheint ein Abweisungszeichen. Dann werden wir uns mit einer erweiterten Version befassen, die den Effekt mithilfe moderner Reaktionstechniken und bewährter Methoden verfeinert den Effekt mithilfe moderner Reaktionstechniken und bewährter Projektbasiertes Lernen. Es geht nicht um lange Vorlesungen. Sie gelangen direkt zum Code wobei jeder Schritt klar erklärt wird, sodass Sie ihn sofort anwenden können. Der erste besteht aus dem Unterrichten. Ich fasse die Dinge kurz und energisch, damit Sie keine Zeit verschwenden. Sie werden praktische Fähigkeiten erwerben , die Sie für Ihre eigenen Projekte einsetzen können. Am Ende werden Sie eine übersichtliche interaktive Schaltfläche und ein tieferes Verständnis von React-Animationen haben eine übersichtliche interaktive Schaltfläche und ein tieferes Verständnis , was Ihr Toolkit für die Webentwicklung erweitern wird Ihr Toolkit für die Webentwicklung erweitern Lassen Sie uns einsteigen und etwas Fantastisches kreieren. 2. Setup: React-App erstellen: Beginnen Sie mit einem leeren Projektordner und verwenden Sie VS Code, einen leistungsstarken und benutzerfreundlichen Code-Editor. Öffnen Sie zunächst das atlratd-Terminal im VS-Code. Jetzt erstellen wir unsere React-App mit dem Photon-Befehl. Px, erstelle React App Dot. Der Punkt am Ende weist PX an, die React-App im koreanischen Verzeichnis zu erstellen die React-App im , anstatt einen neuen Ordner zu erstellen. Drücken Sie die Eingabetaste und warten Sie, bis die Installation abgeschlossen ist. Dieser Prozess wird alles einrichten, was wir brauchen, um mit dem Codieren und Reagieren zu beginnen. Okay, sobald die Einrichtung abgeschlossen ist, löschen wir das Terminal Schauen wir uns nun unsere Projektstruktur an. Im Datei-Explorer sehen Sie mehrere Dateien und Ordner. Das vorerst wichtigste ist App Dots. Hier spielt sich die Hauptlogik unserer App ab. Führen Sie NPM start aus, um eine Vorschau unseres Projekts im Browser anzuzeigen. Dadurch wird ein neues Browserfenster geöffnet Standard-Willkommensseite von React angezeigt Lassen Sie uns unser Projekt organisieren, indem wir eine separate Komponente für unsere Schaltfläche erstellen. im SFC-Ordner Erstellen Sie im SFC-Ordner einen neuen Ordner namens Components Sie dann in diesem Ordner Erstellen Sie dann in diesem Ordner eine neue Datei und rufen Sie den Button Dot GSX auf Dies wird unsere benutzerdefinierte Schaltflächenkomponente sein, und in der nächsten Lektion werden wir damit beginnen, sie Schritt für Schritt zu erstellen 3. Vorbereiten der Schaltflächenkomponente: Richtig, das ist unser Projekt , an dem wir arbeiten können. Ich habe hier eine CSS-Datei hinzugefügt und sie Cool Button to CSS genannt. Es enthält die CSS-Stile für unsere coole Button-Komponente. Sie finden diese Datei im Abschnitt „Ressourcen“ mit Kommentaren zu den Funktionen ihrer CSS-Eigenschaft. Jetzt fangen wir an, unsere coole Button-Komponente zu codieren. Importieren Sie zuerst React aus dem Act und dann importieren wir unsere Styles aus dem CSS-Modul Cool Button. Erstellen Sie eine Funktionsschaltfläche mit einem großen C und verwenden Sie eine Pfeilfunktion. Funktion gibt einen GSX-Code zurück , der ein Button-Element mit dem Text sein wird , der ein Button-Element mit dem Text sein Klicken Sie auf M. Wir geben unserer Schaltfläche den Klassennamen Cool dash button , den Sie in der CSS-Datei der Studie finden. Das wird unserer Schaltfläche einen coolen und interaktiven Stil verleihen einen coolen und interaktiven Stil Schreiben Sie nun am Ende der Datei den Standard-Cool-Button Exportieren Dadurch wird die Cool-Button-Komponente während unseres gesamten Projekts wiederverwendbar. unsere Komponente zu rendern, müssen wir sie in der Abdo GS-Datei in diesem Dev-Element verwenden in diesem Dev-Element Stellen Sie sicher, dass Sie es so importiert haben. Außerdem müssen wir die App-Klasse für dieses Dev-Element bearbeiten , um den Cool-Button in der Mitte der Seite zu platzieren . Sie also in der Abdo-CSS-Datei und in der APCSS-Klasse diese CSS-Eigenschaften hinzu, und sie sollten die Arbeit erledigen Lassen Sie uns diese App ausführen und das Ergebnis sehen und das Terminal bei einem NPM-Start Wenn der lokale House-Server gestartet wird, wird die App im Browser gerendert und Sie sehen unseren coolen Button in der Mitte der Seite Es hat einen coolen Hover-Effekt und einen Klick-Effekt mit einem schönen Hintergrund mit Farbverlauf und einem schönen Schatten, der der Schaltfläche ein wenig Tiefe verleiht der der Schaltfläche ein wenig Tiefe Sie können die CSS-Datei im Abschnitt Ressourcen überprüfen , wo Sie Kommentare dazu finden , was CSS-Klasse und -Eigenschaft bewirken Das war's für diese Lektion. Das ist nur die Vorbereitung für das Projekt, und in den nächsten paar Lektionen werden wir uns den interessanten Dingen befassen. Also lass uns gehen. 4. Ansatz für Anfänger: grundlegender Ripple-Animationseffekt: Okay, hier haben wir unseren Button aus der vorherigen Lektion gelassen Button aus der vorherigen Lektion Es sieht gut aus, aber wir wollen es cooler machen , indem wir einen Ripple-Click-Effekt hinzufügen Zunächst beginnen wir mit der grundlegenden, nicht so fortgeschrittenen Methode Erzeugung des Klick-Effekts In der nächsten Lektion werde ich Ihnen dann zeigen, wie Sie diese Art von Effekten richtig ausführen können. die grundlegende und die fortgeschrittene Vorgehensweise kennen , werden Sie starke Fähigkeiten zur Problemlösung entwickeln, und das ist das ultimative Ziel dieses Kurses. Lass uns anfangen. Erstellen Sie zunächst innerhalb der Schaltfläche ein Span-Element direkt unter dem Click-Me-Text. Dies wirkt wie unser Welleneffekt , wenn auf die Schaltfläche geklickt wird Geben Sie der Span den Klassennamen Ripple. Diese Klasse ist in der Cool Button Dot CSS-Datei definiert der Cool Button Dot CSS-Datei In den Ressourcen finden Sie detaillierte Informationen zum CSS-Code. Gehen Sie zurück zum Ripple und fügen Sie ein Style-Attribut hinzu. In diesem Thema werden wir einige Eigenschaften hinzufügen, um die Position und Größe der Welligkeit zu steuern die Position und Größe der Welligkeit Setzen Sie links auf Null, oben auf Null, Breite auf 100% und hoch auf 100% Jetzt können Sie jedes Mal, wenn Sie die Seite ausrollen , den Welleneffekt unten sehen Das liegt daran, dass jedes Mal, wenn das Tempo geladen wird, das Ripple-Element auch mit den CSS-Stilen geladen wird, und wenn die CSS-Stile geladen werden, wird jede Animation, die wir haben wird jede Animation, die wir haben, automatisch ausgelöst Und das ist bei unserer Ripple-Animation genau hier der Fall. Wir wollen, dass der Effekt bei jedem Klickereignis ausgelöst wird der Effekt bei jedem Klickereignis dem Button-Element also ein OnClick-Attribut Fügen Sie dem Button-Element also ein OnClick-Attribut und setzen Sie es so, dass es dem Handle-Klick entspricht Erstellen Sie hier eine Handle-Click-Funktion. Klicken Sie, wir lösen die Wellenanimation indem wir die Spanne hinzufügen und dann entfernen. Dies ist eine einfache Möglichkeit, eine Animation auszuführen Dafür verwenden wir einen Reaktionszustand, der animate auf true gesetzt hat. Natürlich müssen wir den Status hier definieren, und wir werden den Use-State-Hug verwenden und den Anfangsstatus auf False setzen und den Status auf React portieren Jetzt verwenden wir den Animate-Status, um die Spanne zu rendern, die Span in zwei reine Basen und fügen die Animate-State-Variable Dadurch wird festgestellt, dass „React I animate“ wahr ist, und dann wird die Spanne gerendert Wenn es falsch ist, rendern Sie den Bereich nicht. Speichern Sie jetzt den Code und lassen Sie uns testen. Klicken Sie auf die Schaltfläche und die Pul-Animation wird ausgelöst. Wenn Sie jedoch erneut klicken, passiert nichts, da wir den Animationsstatus nicht wieder auf Kraft zurückgesetzt Um diesen Umschaltmechanismus zu nutzen, stellen wir die Funktion zum Klicken auf den Griff ein und fügen dieses festgelegte Timeout hinzu, das auf 600 Millisekunden wartet. Dies ist der Animationszeitraum , der in der CSS-Klasse po definiert ist definiert Nach 600 Millisekunden wird der Callback ausgelöst und wir rufen die Funktion set animate auf, wodurch der Animate-Status wieder auf Force zurückgesetzt wird . Sie können mehrmals auf die Schaltfläche klicken, und der Welleneffekt wird jedes Mal ausgeführt Aber wie Sie sehen können, sieht die Animation nicht gut aus, besonders wenn ich sehr schnell klicke Darüber hinaus möchten wir, dass die Wellen an der Position beginnen, an der wir mit dem Mauszeiger auf die Schaltfläche geklickt haben wir mit dem Mauszeiger auf die Schaltfläche Mit einer fortgeschritteneren Code-Implementierung können wir das besser machen einer fortgeschritteneren Code-Implementierung In der nächsten Lektion werden wir dafür sorgen, dass diese Animation flüssiger und unterhaltsamer ist, besonders wenn sie Ihrer Cursorposition folgt 5. Fortgeschrittener-Ansatz: Profi-Ripple-Animationstechniken: Der Abseilanimationseffekt funktioniert, aber nicht ganz gut. Er sieht nicht gut aus Es wirkt komisch und es ist überhaupt nicht glatt. Das liegt an unserer schlechten Code-Implementierung. In dieser Lektion werden wir das Problem beheben. Glauben Sie mir, es wird super einfach sein und Spaß machen. Lassen Sie uns zunächst den Code in der Handle-Click-Funktion entfernen . Entferne den Animationsstatus von hier und auch hier drüben. Lassen Sie uns unseren Click-Handler in Use-Callback-React-Hook integrieren, um die Leistung zu optimieren und unnötige Renderings zu verhindern Fügen Sie am Ende so ein Interray hinzu, das sicherstellt, dass die Funktion nur einmal erstellt wird Stellen Sie sicher, dass Sie den US-Callback-Hook von React importieren. Jetzt wird sich die Gesamtidee Wellen zu erzeugen, ändern Wir werden ein Array verwenden, um mehrere Ripple-Fakten zu verfolgen. Jedes Mal, wenn auf die Schaltfläche geklickt wird, fügen wir dem Array ein neues Ripple-Objekt hinzu, das seine Position speichert und die Animation auslöst Nach einer kurzen Verzögerung werden wir diese Welligkeit aus dem Array entfernen , um alles sauber zu halten Auf diese Weise können mehrere Wellen beim Klicken auf die Schaltfläche reibungslos erscheinen und wieder verschwinden Fügen wir einen neuen Status hinzu, um die Wellen zu speichern , nennen wir es Wellen, Klicken Sie im Griff auf die Funktion Set Ripples. Nimm die vorherigen Wellen und gib in einem Coback ein neues Array mit den alten Wellen und einem neuen zurück ein neues Array mit den alten Wellen und Vorerst wird es eine neue Welle sein. Hier unten werden wir das Ripple-Array verwenden, um anhand der Array-Länge zu bestimmen , wie viele Wellen wir rendern müssen rendern Bei Ripples Punktmap mit dem Cobac , der seine Welligkeit annimmt, und dem Schlüsselargument, das standardmäßig mit React erzeugt wird Nimm nun das Ripple-Span-Element, schneide es aus und platziere es wie folgt innerhalb des Cobac zwischen zwei Klammern. Fügen Sie ein Schlüsselattribut hinzu und setzen Sie es dem Schlüsselargument gleich. Speichern Sie den Code und lassen Sie uns das Ergebnis testen. Die Animation funktioniert immer noch, und hier ist der Moment der Wahrheit. Wenn ich sehr schnell klicke, werden die Wellen nacheinander gleichmäßig erzeugt. Aber wir haben immer noch das Problem. Lassen Sie uns den Quellcode der Seite überprüfen. Und in unserem Button-Element können wir eine Katastrophe sehen. Das Ripple Span-Element wird in der Kuppel mehrfach wiedergegeben Dies wird sich definitiv auf die Leistung auswirken. Wir wollen die Welligkeit nach kurzer Zeit entfernen und unsere Kuppel sauber halten Sie in der Handle-Click-Funktion Fügen Sie in der Handle-Click-Funktion ein festgelegtes Timeout mit einem Stellen Sie die Timeout-Dauer auf 600 Millisekunden ein. Dies ist die Animationsdauer, die in der Po-CSS-Klasse für die hier definierte Po-Animation Po-CSS-Klasse für die hier definierte Po-Animation Rufen Sie nach 600 Millisekunden set ripples auf. Nehmen Sie das vorherige Array und geben vorherigen Punktfilter mit einem Callback zurück, der seine Welligkeit herausnimmt und Wellen herausfiltert oder entfernt, deren Schlüssel nicht dem U-Ripple-Punkt-Schlüssel und Wellen herausfiltert oder entfernt, deren Schlüssel nicht U-Ripple-Punkt-Schlüssel Wir wollen also nur New Ripple behalten und den Rest entfernen. Die neue Welle existiert noch nicht, also definieren wir sie gleich hier. Es wird eine Konstante und ein Objekt sein. Dieses Objekt wird seine Welligkeit repräsentieren, und seine Welligkeit wird diese Stileigenschaften haben Also werden wir etwas definieren dem in diesem Objekt sehr ähnlich ist Fügen Sie eine X-Eigenschaft mit dem Wert Null, eine Y-Eigenschaft mit dem Wert Null und einer Größe von 100% hinzu. X- und Y-Eigenschaften behalten die Position des Cursors bei, wenn wir auf die Unterseite klicken, und die Größeneigenschaft sorgt dafür, dass die Abweisung die gesamte Schaltfläche abdeckt Wir werden uns in einer Weile darum kümmern, aber vorerst behalten wir diese Werte Und schließlich werden wir eine Schlüsseleigenschaft haben, weil wir sie hier verwenden und es ist immer am besten, unsere eigenen Schlüssel zu erstellen , anstatt uns darauf zu verlassen, dass React das tut. Setzen Sie den Wert also jetzt auf den Punkt date. Ersetzen Sie diese neue Abstoßzeichenfolge durch eine neue Abstoßen-Javascript-Konstante Verwenden wir für das Schlüsselattribut den Ripple Dot Key. Sagen wir das und die Animation funktioniert immer noch. Und vor allem, wenn wir das innerhalb des Button-Elements überprüfen, müssen wir die Anwendung neu laden , damit wir von vorne beginnen können Wenn ich jetzt auf die Schaltfläche klicke, wirst du feststellen, dass das Ripple-Span-Element erscheint und nach 600 Millisekunden verschwindet es wieder Jetzt fehlt uns immer noch etwas. Wir wollen die Position und Größe der Wellen programmgesteuert steuern und Größe der Wellen programmgesteuert Wir müssen also die Eigenschaften des Ripple-Objekts verwenden, um die Wellenspanne zu gestalten Lassen Sie uns dies durch den Wellenpunkt X ersetzen Setzen Sie oben den Wellenpunkt auf Y und verwenden Sie für die Breite und Höhe die Wellenpunktgröße verwenden Sie für die Breite und Höhe die Diese Eigenschaften haben immer noch keinen Einfluss auf die Wellen Wir werden ihre Werte anhand der Button-Referenzen definieren anhand der Button-Referenzen Definieren Sie hier eine Button-Ref-Konstante. Wir werden den Use Rf React-Hook verwenden und seinen Anfangswert auf Null setzen. Stellen Sie sicher, dass Sie den Use Rf-Hook von React angeben. Mit diesem Hook können wir die Position des Cursors auf der Schaltfläche definieren und die Größe der Welligkeit bestimmen Ordnung, fügen Sie nun das ref-Attribut zum Button-Element hinzu und setzen Sie seinen Wert auf Button-Ref Auf diese Weise enthält die Button-Ref-Konstante die Referenz der Schaltfläche in der Puppe. Definieren Sie mit der Funktion zum Klicken auf den Griff eine Konstante. Rect ist die Abkürzung für Rechteck , weil es die rechteckige Form der Schaltfläche und ihre Position auf dem Bildschirm darstellt die rechteckige Form der Schaltfläche . Setzt den Wert auf die Schaltfläche Rf, Punkt, der aktuelle Punkt erhält den Begrenzungsclient Rt , eine Funktion , die Sie aufrufen müssen Lassen Sie uns die Rat-Variable in der Konsole protokollieren und sehen, was sie uns gibt Wenn ich klicke, erhalte ich diese Ausgabe auf der Konsole. Get Bounding Client Track gibt uns diese Informationen über die Schaltfläche, anhand derer wir die Position und Größe der Schaltflächen berechnen werden Position und Größe der Schaltflächen Entferne das Konsolenprotokoll, füge eine Größenkonstante berechne die Größe mit der mathematischen Punktmax-Funktion, die uns das Maximum aus zwei gegebenen Zahlen gibt, wobei die G-Punktbreite und die G-Punkthöhe übergeben Dadurch wird die Po-Größe auf die größere Dimension der Breite oder Höhe der Schaltfläche festgelegt die größere Dimension der Breite oder Höhe der Schaltfläche , sodass der Effekt die Schaltfläche bei der Animation vollständig abdeckt Lassen Sie uns nun die X-Koordinate des Cursors berechnen , wenn wir auf die Schaltfläche klicken Wir müssen also auf das Klickereignis zugreifen. Reaktion übergeben wir das Klickereignis standardmäßig als Argument an die Funktion. Wir werden es E nennen, kurz für Event. Aus dem Klick-Event nehmen wir die X-Koordinate der Klicks und den Punkt E des Clients X, subtrahieren die linke Position der Schaltflächen, rechten Punkt links und passen sie um die Hälfte der Po-Größe Also Größe geteilt durch zwei zur Mitte. Dadurch wird die X-Position der Wellen innerhalb der Schaltfläche berechnet. Definieren Sie als Nächstes die Y-Konstante. Wir nehmen die Y-Koordinate der Klicks, E, Kunde Y, subtrahieren die obere Position und den oberen Punkt der Schaltfläche und passen sie um die Hälfte der Wellengröße an, sodass wir sie zentrieren Also Größe geteilt durch zwei. Dadurch wird die Y-Position der Wellen innerhalb der Schaltfläche berechnet. Jetzt werden wir diese Berechnungen innerhalb des neuen Ripple-Objekts verwenden , um unsere Welligkeit zu formen Für diese Größe beziehen wir uns also auf die berechnete Größe. Für die Y-Eigenschaft beziehen wir uns auf die Y-Koordinate des Cursors und dasselbe für die X-Koordinate. Und das ist das letzte Stück , um diesen Zauberspruch zu erschaffen. Speichern wir das und schauen uns die Ergebnisse an. Schließe dieses Fenster, und wenn ich klicke, beginnen die Wellen mit der Genauigkeit des Y-Cursors zu animieren , und die Größe der Welle bedeckt die Wir sind von der einfachen Implementierung zur fortgeschrittenen Implementierung dieses Button-Animationseffekts übergegangen , und Sie haben eine neue Fähigkeit und eine neue Sichtweise darüber erlernt , wie Dinge aufgebaut sein und reagieren sollten Diesen Kurs zu beenden ist wirklich eine große Leistung. Es zeigt, dass Sie den Funken haben, der Sie motiviert, Zeit und Mühe zu investieren , um neue Dinge zu lernen Und das, mein Freund, ist das Wichtigste in jeder erfolgreichen Geschichte Ich lasse dich hier stehen, aber du kannst mir gerne folgen und dein Projekt im Projektportfolio auf Skill Share einreichen , damit du Feedback bekommst und vielleicht versuchen kannst, deine eigene Logik oder Animation zu entwickeln deine eigene Logik oder Animation und sie mit anderen Lernenden und mit mir zu teilen Ich würde mich freuen, deine Kreationen zu sehen.