Lassen Sie uns einige dynamische, animierte Abschnittslinks erstellen

Beim Erstellen von Markup für längere geschriebene Teile auf einer einzelnen Seite ist es oft wichtig, Navigationsstrukturen zu erstellen, um zwischen verschiedenen Teilen dieses Texts zu springen. Dies wird nativ in HTML unterstützt, sodass wir zu Abschnitten auf einer Seite springen und sie sogar direkt von externen Links aus besuchen können. 

Eine Liste nebeneinander - hier sehen Sie den Abschnitts-Link und die "Fragment-ID" (Hash-Tag ...) in der URLDie Hilfedokumentation zu GitHub ist ein weiterer Ort, an dem Sie Links zu dynamischen Abschnitten finden

In diesem Lernprogramm werden wir eine Technik erörtern, mit der diese Links dynamisch mit JavaScript generiert und anschließend mit CSS animiert werden. Lass uns eintauchen!

Markup

Der erste notwendige Schritt ist die Erstellung eines geeigneten Markups für Ihr geschriebenes Stück. Wir gehen davon aus, dass Sie eine haben Artikel, und in diesem Artikel gibt es viele Sektions, jedes mit seinem eigenen h1 Tag und nachfolgender Inhalt.

So könnte Ihr HTML aussehen:

Hier ist ein Teil

Fundraising-Kampagne für Stolz mobilisieren, Gründungskriterien retten Leben, Menschenrechtsspende Ermächtigung. Großzügigkeit Klimawandel, verletzliche Bevölkerungsgruppen, die sich dauerhaft verändern. Ergebnisse, Ehrlichkeit, die sich entwickelnde Nationen stören und das auf den Menschen ausgerichtete Design stören; Fortschritt Implementierung UNHCR viele Stimmen Prozess.

Die Ältesten; Komplexität feiern; Diversifizierung der Rechtshilfe Sanierung soziales Unternehmertum Open-Source-Hilfsbeitrag Gesundheitshelfer.

Hier ist ein anderes

Gemeinschaftseigentum ausbauen; Kickstarter Public Service kollaborativer Konsum, Beschäftigung Rockefeller Public-Private-Partnerschaften transformativer Umgang. Partner Aga Khan informelle Volkswirtschaften erfordert gemeinsame Städte öffentliche Institutionen Chancen Ernährung.

Und noch eins

Freier Ausdruck des öffentlichen Sektors bedeutsam, aktivierbar; Andrew Carnegie Bloomberg, Krisensituation der Globalisierungskrise. Gender, Gleichberechtigung der Geschlechter Wahrheit Langfristig Verbesserung der Qualität Jugendbeteiligung Gleichheit skalierbar Endhunger nachhaltig Medecins du Monde Agentur verändert Leben.

Sozialanalyse, Partner; Grundstein für lebensrettende Stipendiaten Jane Addams freie Meinungsäußerung, Veränderungsbewegungen, die die sozialen Herausforderungen positiv beeinflussen.

Hinweis: Wie Sie sehen, wenden wir ein Ich würde zu den einzelnen Abschnitten. Wir entscheiden uns dafür, weil die Ich würde ist eigentlich auf den Abschnitt selbst bezogen, nicht auf die h1 Etikett.

Zu einem Element mit einem gegebenen springen Ich würde Auf einer Seite erstellen Sie ein Ankertag mit einem href Wert gleich der Raute, gefolgt von der Ich würde. Um in unserem Beispielinhalt von oben zum zweiten Abschnitt zu springen, können Sie beispielsweise den folgenden Link erstellen:

Zweiter Abschnitt

Es gibt viele Möglichkeiten, dies zu tun: Sie können die Links von Hand eingeben, Sie können eine Abstraktion verwenden, die den HTML-Abschnitt Ihres Abschnitts einschließlich des Links aufbaut. In diesem Tutorial verwenden wir jedoch JavaScript, um die Links dynamisch zu generieren.

Vanille JS

Hier ist das JavaScript:

var section = document.querySelectorAll ('section'); für (var i = 0; i < sections.length; i++)  var section = sections[i]; var id = section.id; var h1 = section.querySelectorAll('h1')[0]; var text = h1.innerHTML; h1.innerHTML = ""+ text +""+" "+ id +" ";

jQuery-Version

Und hier ist eine jQuery-Version, die im Wesentlichen dasselbe erreicht:

$ ('article section'). each (Funktion (i, el) var id = $ (this) .attr ('id'); var h1 = $ (this) .find ('h1'). first () var t = h1.text (); h1.html (""+ t +""); h1.append (" # "+ id +" "););

Beide ergeben das gleiche Ergebnis. Wir suchen nach den Nachkommen eines bestimmten Abschnitts eines Artikels und für jeden von ihnen finden wir den Ich würde von diesem Abschnitt. Dann bauen wir einen Link, der darauf hinweist Ich würde und hängen Sie es an Header Element. Wir verpacken den vorhandenen Text außerdem in einem Bereich, um die Gestaltung flexibler zu gestalten.

Apropos Styling…

Als Nächstes wenden wir ein paar grundlegende CSS-Elemente an, um einen Effekt zum Ausblenden und Aufdecken von Effekten bereitzustellen:

@import url (http://fonts.googleapis.com/css?family=Fira+Sans:300,400,700); body font-family: "Fira Sans", serifenlos; Farbe: # 444;  Artikel Breite: 90%; Marge: 0 auto;  h1 position: relativ; span float: left;  a Übergang: alle .4s; Deckkraft: 0; Farbe: # FD9148; Schriftgewicht: 300; Rand links: 12px; Textdekoration: keine;  &: hover a text-indent: 0; Deckkraft: 1; 

Diese Regeln legen zunächst einige Grundstile fest. Schriftart, Farbe, Artikel Breite und so weiter. Dann sagen wir das ein (die wir zuvor über JavaScript angehängt haben) werden mit Übergängen versehen und haben standardmäßig eine Deckkraft von 0. Nur wenn wir darüber schweben, erhöht sich seine Deckkraft auf 1, wodurch wir die Einblendung erhalten.

Und das ist es! Nun haben wir eine relativ einfache Implementierung dieser Technik in Aktion:

Fazit

Wir haben gerade eine wirklich nützliche Erweiterung für inhaltsreiche Webseiten erstellt! Der Fallback ist ebenfalls elegant: Wenn JavaScript deaktiviert ist, werden die Links einfach nicht angezeigt. Wenn am Ende der URL ein Hash-Tag vorhanden ist, werden diese ignoriert.

Unser Einblendeffekt ist eine einfache Möglichkeit, den Link zu präsentieren. Wie können Sie ihn also verbessern? Welche Animationen können Sie anwenden? Würden Sie den Link auf dieselbe Weise positionieren? Wir freuen uns auf Ihre Ideen (und achten auf das Community-Projekt, das wir in Kürze mit diesem Thema starten werden!)