HTML + CSS realisiert das Scrollen zur Elementposition, um den Ladeanimationseffekt anzuzeigen

HTML + CSS realisiert das Scrollen zur Elementposition, um den Ladeanimationseffekt anzuzeigen

Wie füge ich jedes Mal eine Ladeanimation hinzu, wenn ich zu einem Element scrolle?

Element, das Anfangsparameter hinzufügt

Nehmen Sie die Animation im obigen Bild als Beispiel, fügen Sie zwei linke und rechte Container hinzu und platzieren Sie den Inhalt in den Containern.

Fügen Sie Anfangsdaten mit einer Standardtransparenz von 0 und einer Bewegung von 100 Pixeln nach links und rechts hinzu.

//Linker Container.item-leftContainer {
    Deckkraft: 0;
    transformieren: übersetzenX(-100px);
  }
  //Rechter Container.item-rightContainer {
    Deckkraft: 0;
    transformieren: übersetzenX(100px);
  }

Hinzufügen von Animationsdaten

Fügen Sie Animationsdaten in weniger hinzu. Hier wird nur bis eingestellt. Sie können die anfängliche Parametereinstellung in Schritt 1 auch weglassen und in der Animation von einstellen.

Nach der Ausführung ändert sich die Transparenz von 0 auf 1 und die beiden Container verschieben sich 100px zur Mitte und kehren an ihre Ausgangspositionen zurück.

//Animation @keyframes showLeft {
    Zu {
      Deckkraft: 1;
      transformieren: übersetzenX(0px);
    }
  }
  @keyframes zeigenRechts {
    Zu {
      Deckkraft: 1;
      transformieren: übersetzenX(0px);
    }
  }
  @keyframes hideLeft {
    Zu {
      Deckkraft: 0;
      transformieren: übersetzenX(-100px);
    }
  }
  @keyframes hideRight {
    Zu {
      Deckkraft: 0;
      transformieren: übersetzenX(100px);
    }
  }

Auslösen einer Animation

Auslöser zum Laden/Aktualisieren der Seite – wird in componentDidMount ausgeführt

Wird ausgelöst, wenn die Seite gescrollt wird – fügen Sie Listener/Logouts für Seiten-Scroll-Ereignisse in componentDidMount und componentWillUnmount hinzu.

Überprüfen Sie den Unterschied zwischen der aktuellen Bildlaufhöhe und der Position des Elements:

window.pageYOffset (Scrolldistanz) + windowHeight (Fensterhöhe) > leftElement.offsetTop (relative Position des Elements) + parentOffsetTop (relative Position des übergeordneten Elements) + 200

  • Echte visuelle Scrollposition – window.pageYOffset (Scrolldistanz) + windowHeight (Fensterhöhe)
  • Die Höhe des Elements von oben – leftElement.offsetTop + parentOffsetTop – wird hier verwendet, da der übergeordnete Container die absolute Positionierung verwendet. Wenn es sich um ein normales Layout handelt, verwenden Sie die aktuelle Position des Elements leftElement.offsetTop
  • Die zusätzliche Höhe von 200 dient der Optimierung des visuellen Erlebnisses. Die Animation wird ausgelöst, wenn die Höhe 200 überschreitet

Beim Scrollen der Seite nach unten wird die Anzeigeanimation ausgelöst, beim erneuten Scrollen der Seite nach oben wird die Ausblendanimation ausgelöst.

componentDidMount() {
        this.checkScrollHeightAndLoadAnimation();
        window.addEventListener('scroll', this.bindHandleScroll);
    }
    componentWillUnmount() {
        window.removeEventListener('scroll', this.bindHandleScroll);
    }
    bindHandleScroll = (Ereignis) => {
        this.checkScrollHeightAndLoadAnimation();
    }
    checkScrollHeightAndLoadAnimation() {
        const windowHeight = window.innerHeight;
        let parentEelement = document.getElementById("softwareUsingWays-container") als htmlElement;
        const parentOffsetTop = parentEelement.offsetTop;
        let leftElement = (parentEelement.getElementsByClassName("item-leftContainer") als htmlCollectionOf<HTMLElement>)[0];
        wenn (Fenster.SeitenYOffset + Fensterhöhe > linkesElement.OffsetTop + übergeordneterOffsetTop + 200) {
            leftElement.style.animation = "showLeft .6s vorwärts" //Animation hinzufügen} else {
            leftElement.style.animation = "hideLeft 0s vorwärts" //Animation ausblenden}
        let rightElement = (parentEelement.getElementsByClassName(".item-rightContainer") als HTMLCollectionOf<HTMLElement>)[0];
        wenn (Fenster.SeitenYOffset + Fensterhöhe > rechtesElement.OffsetTop + übergeordneterOffsetTop + 200) {
            rightElement.style.animation = "showRight .6s vorwärts" //Animation hinzufügen} else {
            rightElement.style.animation = "hideRight 0s vorwärts" //Animation ausblenden}
    }

Dies ist das Ende dieses Artikels über die Verwendung von HTML+CSS zum Scrollen zur Elementposition, um den Ladeanimationseffekt anzuzeigen. Weitere verwandte HTML-Ladeanimationsinhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder stöbern Sie weiter in den verwandten Artikeln unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Sechs merkwürdige und nützliche Dinge über JavaScript

>>:  Schritte zum Einrichten und Mounten freigegebener Ordner auf Windows-Host und Docker-Container

Artikel empfehlen

Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Es gibt zwei Möglichkeiten, Container-Ports in Do...

So vergessen Sie das Root-Passwort in Mysql8.0.13 unter Windows 10

1. Stoppen Sie zuerst den MySQL-Dienst Öffnen Sie...

Floaten und Floaten löschen in der Übersichtsseite

1. Float: Der Hauptzweck besteht darin, den Effek...

Eine kurze Erläuterung temporärer MySQL-Tabellen und abgeleiteter Tabellen

Abgeleitete Tabellen Wenn die Hauptabfrage eine a...

3 Möglichkeiten zum Hinzufügen von Links zu HTML-Auswahl-Tags

Der Erste : Code kopieren Der Code lautet wie folg...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

Ein Artikel, der Ihnen hilft, die Grundlagen von VUE zu verstehen

Inhaltsverzeichnis Was ist VUE Kern-Plugins in Vu...

Analyse des Uniapp-Einsteiger-NVUE-Klettergrubenrekords

Inhaltsverzeichnis Vorwort Hallo Welt Bild Rahmen...

Detaillierte Erklärung der binären und varbinären Datentypen in MySQL

Vorwort BINARY und VARBINARY ähneln in gewisser W...

So verwenden Sie den Linux-Befehl md5sum

01. Befehlsübersicht md5sum - MD5-Prüfcode berech...

Tutorial zur MySQL-Installation in der Linux-CentOS7-Umgebung

Detaillierte Einführung in die Schritte zur Insta...

Drei Verwendungszwecke und Unterschiede von MySQL sind nicht gleich

Urteilssymbole werden in MySQL häufig verwendet, ...

Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Details zur Sicherheitsanfälligkeit VSFTP ist ein...

So verwenden Sie Nginx, um domänenübergreifende Front-End-Probleme zu lösen

Vorwort Bei der Entwicklung statischer Seiten, wi...