Ziele für diesen ZeitraumVerwenden Sie JavaScript, um Bodennavigationseffekte zu erstellen und zwei Funktionen zu erreichen:
1. Funktionsimplementierung1.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 Verhaltensebene1.3.1 BodensprungKlicken 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überwachungEtagenü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. Effektvorschau3. ProjektcodeKlicken 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:
|
<<: XHTML-Erste-Schritte-Tutorial: XHTML-Hyperlinks
>>: So zeigen Sie Bildinformationen in Docker an
Einführung: Heutzutage werden bei der Anmeldung o...
Inhaltsverzeichnis Was ist ein Auslöser Erstellen...
Das Prinzip des Hochladens von Bildern auf dem Fr...
Inhaltsverzeichnis 1. Der Ursprung von Tomcat 1. ...
<br />Welche Grundsätze sollten beachtet wer...
PHP7 ist bereits seit einiger Zeit auf dem Markt ...
1. Beschreibung der Schwachstelle Am 15. Mai 2019...
sudo-Konfigurationsdatei Die Standardkonfiguratio...
Leerer Link: Das heißt, es besteht keine Verbindu...
Passwortmodus PDO::__construct(): Der Server hat ...
Der Standardtabellenname ist „base_data“ und der ...
Wenn wir uns in vielen Apps und Websites anmelden...
Installationsmethode für komprimierte MySQL 8.0-P...
Der Fehler lautet wie folgt: Nicht abgefangener T...