Detaillierte Erläuterung des Prozesses zum Erstellen von Bodennavigationseffekten mit JavaScript

Detaillierte Erläuterung des Prozesses zum Erstellen von Bodennavigationseffekten mit JavaScript

Ziele für diesen Zeitraum

Verwenden Sie JavaScript, um Bodennavigationseffekte zu erstellen und zwei Funktionen zu erreichen:

  • Bodensprung
  • Etagenüberwachung

1. Funktionsimplementierung

1.1 Strukturschicht

<div id="Box" Klasse="Box">
    <ul Klasse="Liste">
        <li class="content-part" data-n="Spalte 1">Spalte 1</li>
        <li class="content-part" data-n="Spalte 2">Spalte 2</li>
        <li class="content-part" data-n="Spalte Drei">Spalte Drei</li>
        <li class="content-part" data-n="Spalte 4">Spalte 4</li>
        <li class="content-part" data-n="Spalte Fünf">Spalte Fünf</li>
    </ul>
</div>
<div Klasse="links">
    <ul id="linke-Liste">
        <li data-n="Spalte 1">Spalte 1</li>
        <li data-n="Spalte 2">Spalte 2</li>
        <li data-n="Spalte Drei">Spalte Drei</li>
        <li data-n="Spalte 4">Spalte 4</li>
        <li data-n="Spalte Fünf">Spalte Fünf</li>
    </ul>
</div>

1.2 Stilebene

<Stil>
    * {
        Rand: 0;
        Polsterung: 0;
    }
    Körper .box {
        Breite: 1200px;
    }
    Körper .box {
        Rand: 0 automatisch;
    }
    ul {
        Listenstil: keiner;
    }
    Körper .box ul li {
        Höhe: 800px;
        Hintergrundfarbe: Silber;
        Rand unten: 20px;
        Schriftgröße: 30px;
        Schriftstärke: fett;
    }
    Körper .links {
        Position: fest;
        links: 20px;
        unten: 100px;
        Breite: 100px;
        Höhe: 250px;
        oben: 50 %;
        Rand oben: -125px;
        Hintergrundfarbe: Silber;
    }
    Körper .links ul li {
        Höhe: 50px;
        Zeilenhöhe: 50px;
        Textausrichtung: zentriert;
        Cursor: Zeiger;
    }
    Körper .aktuell {
        Farbe: #fff;
        Hintergrundfarbe: Tomate;
    }
</Stil>

1.3 Verhaltensebene

1.3.1 Bodensprung

Klicken Sie im linken Menü auf die Etagenschaltfläche, um zur entsprechenden Etage zu springen.

var oList = document.getElementById('linke Liste');
// Klickereignisdelegat oList.onclick = function (e) {
    wenn (e.target.tagName.toLowerCase() == 'li') {
        // Den Wert von data-n abrufen var n = e.target.getAttribute('data-n');
        // [] Attributselektor var contentPart = document.querySelector('.content-part[data-n=' + n + ']');
        //Bildlauf festlegen document.documentElement.scrollTop = contentPart.offsetTop;
    }
}

1.3.2 Etagenüberwachung

Etagenüberwachung: Beim Scrollen der Seite ändert sich der Hintergrund der Etagenspalte im linken Menü entsprechend.

//Beim Scrollen der Seite ändert sich der Hintergrund der Box-Spalte links entsprechend var contents = document.querySelectorAll('.content-part');
var lis = document.querySelectorAll('#left-list li');
var offsetTopArr = [];
für (var i = 0; i < Inhalt.Länge; i++) {
    offsetTopArr.push(Inhalt[i].offsetTop);
}
// Zum einfacheren Vergleichen fügen Sie infinite offsetTopArr.push(Infinity) hinzu;
// Monitor-Scrollen var nowFloor = -1;
fenster.onscroll = Funktion (e) {
    var nowScrollTop = document.documentElement.scrollTop;
    // Der i-Wert von break ist der Index des Box-Arrays für (var i = 0; i < offsetTopArr.length; i++) {
        wenn (jetztScrollTop >= offsetTopArr[i] und jetztScrollTop < offsetTopArr[i + 1]) {
            brechen;
        }
    }
    // Die Stockwerke sind nicht gleich, ändere den Stil if (nowFloor != i) {
        jetztFloor = i;
        für (var j = 0; j < lis.length; j++) {
            wenn (j == i) {
                // Stil zum aktuellen Stockwerk hinzufügen lis[j].className = 'current';
            } anders {
                //Entfernen Sie die Stile anderer Etagen lis[j].className = '';
            }
        }
    }
}

2. Effektvorschau

Bildbeschreibung hier einfügen

3. Projektcode

Klicken Sie hier, um zum Code-Repository zu gelangen und den vollständigen Code anzuzeigen.

Damit ist dieser Artikel über den detaillierten Prozess zum Erstellen von Bodennavigationseffekten mit JavaScript abgeschlossen. Weitere relevante Inhalte zur Bodennavigation in JavaScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • js, um einen Boden-Scrolling-Effekt zu erzielen
  • JS-Codebeispiel zum Erzielen eines Website-Bodennavigationseffekts
  • JS realisiert die Bodenspezialeffekte der Navigationsleiste
  • Beispiel einer von AngularJS implementierten Funktion für einen Ankerpunkt-Bodensprung
  • JS realisiert die Message Board-Funktion [Bodeneffektanzeige]
  • Reines HTML+CSS+JavaScript für ein atemberaubendes Seitenlayout (Beispielcode)
  • js zur Realisierung der Etagennavigationsfunktion
  • Ein einfaches Beispiel für die Implementierung von Bodeneffekten mit js
  • JavaScript zum Erzielen eines Bodeneffekts

<<:  XHTML-Erste-Schritte-Tutorial: XHTML-Hyperlinks

>>:  So zeigen Sie Bildinformationen in Docker an

Artikel empfehlen

Detaillierte Erläuterung des MySQL-Trigger-Trigger-Beispiels

Inhaltsverzeichnis Was ist ein Auslöser Erstellen...

js, um die Funktion zum Hochladen von Bildern zu realisieren

Das Prinzip des Hochladens von Bildern auf dem Fr...

Detaillierte Analyse des Tomcat-Servers des Centos 7-Systems

Inhaltsverzeichnis 1. Der Ursprung von Tomcat 1. ...

Zusammenfassung der Erfahrungen beim Website-Erstellen

<br />Welche Grundsätze sollten beachtet wer...

Verwenden Sie Docker, um mehrere PHP-Versionen auf dem Server auszuführen

PHP7 ist bereits seit einiger Zeit auf dem Markt ...

So fügen Sie einem Benutzer in einer Linux-Umgebung Sudo-Berechtigungen hinzu

sudo-Konfigurationsdatei Die Standardkonfiguratio...

Eine kurze Diskussion über die Rolle leerer HTML-Links

Leerer Link: Das heißt, es besteht keine Verbindu...

Was bei der Migration von MySQL auf 8.0 zu beachten ist (Zusammenfassung)

Passwortmodus PDO::__construct(): Der Server hat ...

Datenabfragevorgang im MySQL-JSON-Format

Der Standardtabellenname ist „base_data“ und der ...

...

Vue-Electron-Problemlösung bei Verwendung des seriellen Ports

Der Fehler lautet wie folgt: Nicht abgefangener T...