So erstellen Sie einen von der Mootools-Homepage inspirierten Navigationseffekt mit jQuery

Wie Sie wissen, gibt es heutzutage eine Vielzahl konkurrierender Javascript-Bibliotheken. Obwohl ich jQuery lieber mag, hat mir die Funktionsweise des Menüs von MooTools schon immer gefallen. In diesem Tutorial werden wir also denselben Effekt wiederherstellen ... aber wir machen es in jQuery!


Demo und Quellcode



Schritt 1

Beginnen wir mit dem Schreiben des erforderlichen HTML-Codes, um eine einfache vertikale Navigation zu erstellen. Wie Sie vielleicht erraten haben, verwenden wir eine ungeordnete Liste

    mit dem ID-Namen "Schiebenavigation". Außerdem werden wir einige Links hinzufügen und jeden Listeneintrag angeben
  • der Klassenname "Gleitelement".

    Ich werde auch ein Titelelement hinzufügen. Dies ist hilfreich, wenn beispielsweise in WordPress-Blogs Titelelemente in der Navigationsleiste der Seitenleiste enthalten sind (z. B. "Archive"). So würde es ungefähr so ​​aussehen:

     
    • Titel der Navigation

    • Link 1
    • Link 2
    • Link 3
    • Link 4
    • Link 5

    Schritt 2

    Jetzt erstellen wir ein HTML-Dokument, in das wir die gerade geleistete Arbeit einfügen können. Erstellen Sie eine neue HTML-Datei und nennen Sie sie demo.html. Öffnen Sie dann diese Datei mit Ihrem bevorzugten Texteditor und fügen Sie den folgenden Code ein:

        Navigationseffekt mit jQuery      
    • Titel der Navigation

    • Link 1
    • Link 2
    • Link 3
    • Link 4
    • Link 5

    Hier sind einige Dinge zu beachten:

    1. Der! DOCTYPE für unsere demo.html-Datei ist auf XHTML 1.0 Strict gesetzt. Dies ist nicht erforderlich, damit der Effekt funktioniert, aber ich versuche mich daran zu gewöhnen, ihn so oft wie möglich zu verwenden.
    2. Sie haben vielleicht bemerkt, dass die Das Tag verweist auf eine Datei namens style.css. Es existiert jedoch keine solche Datei. Keine Sorge, das ist der nächste Schritt.
    3. Endlich habe ich meinen Navigationsblock in einen eingebunden
      . Wir werden dies später verwenden, um den Block auf der Seite zu positionieren.

    Schritt 3

    Nachdem wir nun unsere HTML-Datei beschriftet haben und funktionieren, wollen wir einige Stile hinzufügen. Denken Sie daran, dass unser HTML-Dokument auf eine CSS-Datei mit dem Namen styles.css verweist. Beginnen wir damit, eine Datei mit dem Namen styles.css zu erstellen und sie in demselben Verzeichnis zu speichern, in dem sich unser HTML-Dokument befindet. Öffnen Sie diese Datei wie im vorherigen Schritt mit Ihrem bevorzugten Texteditor und fügen Sie den folgenden Code ein:

     body margin: 0; Polsterung: 0; Hintergrund: # 1d1d1d; Schriftfamilie: "Lucida Grande", Verdana, serifenlos; Schriftgröße: 100%;  ul # slide-navigation list-style: none; Schriftgröße: .75em; Marge: 30px 0;  ul # Gleitnavigation li.sliding-element h3, ul # Gleitnavigation li.sliding-element a display: block; Breite: 150px; Polsterung: 5px 15px; Marge: 0; Rand unten: 5px;  ul # slide-navigation li.sliding-element h3 color: #fff; Hintergrund: # 333; Grenze: 1px fest # 1a1a1a; Schriftgewicht: normal;  ul # slide-navigation li.sliding-element a color: # 999; Hintergrund: # 222; Grenze: 1px fest # 1a1a1a; Textdekoration: keine;  ul # slide-navigation li.sliding-element a: hover color: # ffff66; 

    Schritt 4

    An dieser Stelle sollte Ihre Demo.html-Seite in etwa so aussehen:

    Es ist also endlich Zeit, jQuery zu verwenden. Aber bevor wir anfangen können, müssen wir einige Dinge tun:

    1. Laden Sie die neueste Version von jQuery herunter.
    2. Erstellen Sie eine neue Datei mit dem Namen slide_effect.js und speichern Sie sie im selben Verzeichnis wie Ihre HTML- und CSS-Datei.
    3. Fügen Sie zuletzt die beiden vorherigen Dateien in das HTML-Dokument ein .

    Dies ist, was Ihre HTML-Datei ist sollte jetzt aussehen:

      Navigationseffekt mit jQuery    

    Schritt 5

    Jetzt werden wir die Funktion erstellen, die das "schwere" Anheben übernimmt, damit der Schiebeeffekt funktioniert. Diese Funktion benötigt fünf Parameter (navigation_id, pad_out, pad_in, time und multiplier) und verwendet sie wie folgt:

    1. navigation_id: Dies ist der ID-Name der Navigation, der die Elemente enthält, auf die der Effekt angewendet wird.
    2. pad_out: Dies ist die Anzahl der Pixel, die links aufgefüllt werden müssen, wenn einer der Links in der Navigation in der Schwebe gehalten wird.
    3. pad_in: Dies ist die Anzahl der Pixel, die noch aufgefüllt werden müssen, wenn einer der Links in der Navigation nicht mehr in der Navigationsleiste angezeigt wird.
    4. Zeit: Dies ist die Zeit (in Millisekunden), die ein Linkelement in und wieder hineinschieben muss, um die Seite zu platzieren.
    5. Multiplikator: Die Aufgabe des Multiplikators besteht darin, den Betrag zu erhöhen oder zu verringern, um den ein nachfolgendes Link-Element auf dem Bildschirm angezeigt wird. Mit anderen Worten, wenn der Multiplikator 1 ist, werden alle Link-Elemente in gleichen Zeitintervallen auf dem Bildschirm angezeigt. Wenn es jedoch weniger als 0 ist, werden die nachfolgenden Verknüpfungselemente schneller eingeschoben, und wenn es mehr als 1 ist, geschieht das Gegenteil.

    Öffnen Sie also die Datei slide_effect.js und geben Sie folgenden Code ein:

     Funktionsfolie (navigation_id, pad_out, pad_in, time, multiplier) // erstellt die Zielpfade var list_elements = navigation_id + "li.sliding-element"; var link_elements = list_elements + "a"; // initiiert den für die gleitende Animation verwendeten Timer var timer = 0; // erstellt die Folienanimation für alle Listenelemente $ (list_elements) .each (Funktion (i) // margin left = - ([Breite des Elements] + [vertikale Gesamtauffüllung des Elements]) $ (this) .css ( "margin-left", "- 180px"); // aktualisiert timer timer = (timer * multiplier + time); $ (this) .animate (marginLeft: "0", timer); $ (this) .animate (marginLeft: "15px", Timer); $ (this) .animate (marginLeft: "0", Timer);); // erstellt den Hover-Slide-Effekt für alle Link-Elemente $ (link_elements) .each (function (i) $ (this) .hover (function () $ (this) .animate (paddingLeft: pad_out, 150) ;, function () $ (this) .animate (paddingLeft: pad_in, 150););); 

    Schritt 6

    Um das Skript auszulösen, müssen wir nur die Funktion aufrufen, wenn die Seite geladen ist. Es gibt zwei Stellen, an denen der folgende Code-Code platziert werden kann. Es kann entweder in die Datei slide_effect.js geschrieben werden (ich habe diese Option für dieses Lernprogramm ausgewählt) oder mit einem HTML-Code innerhalb des HTML-Codes aufgerufen

    Navigationseffekt mit jQuery

    Von Bedrich Rios

    • Titel der Navigation

    • Link 1
    • Link 2
    • Link 3
    • Link 4
    • Link 5

    Beachten Sie, dass ich das Bild im Element "navigation-block" hinzugefügt und ihm eine ID namens "hide" gegeben habe. Ich habe auch ein Überschriftenelement und Untertitel hinzugefügt. Jetzt fügen wir unserer styles.css-Datei ein wenig zusätzliches CSS hinzu:

     h2 color: # 999; Rand unten: 0; Rand links: 13px; Hintergrund: URL (Navigation.jpg) keine Wiederholung; Höhe: 40px;  h2 span display: none;  p color: # ffff66; Rand oben: .5em; Schriftgröße: .75em; Polsterung links: 15px;  # navigation-block position: relativ; oben: 200px; links: 200px;  #hide position: absolut; oben: 30px; links: -190px; 

    Also zuerst in der

    In diesem Element haben wir den HTML-Text mit "display: none" verschwinden lassen und ein Hintergrundbild für einen schöneren Text gesetzt, den ich zuvor vorbereitet habe.

    Beachten Sie auch, dass das Element "navigation-block" jetzt eine relative Position hat, sodass wir das Bild "ausblenden" nach links verschieben können. Dadurch werden die Registerkarten darunter angezeigt.

    Um unseren Tabs ein wenig Finish zu geben, habe ich ein dezentes Hintergrundbild hinzugefügt, das wie eine Schattierung aussieht:

     ul # gleiten-navigation li.sliding-element h3 color: #fff; background: # 333 url (heading_bg.jpg) repeat-y; Schriftgewicht: normal; 

    Fertig

    Und wir sind fertig!

    Endeffekt anzeigen

    Laden Sie das HTML / Images / JS herunter