js-Entwicklungs-Plugin zum Erzielen eines Tab-Effekts

js-Entwicklungs-Plugin zum Erzielen eines Tab-Effekts

In diesem Artikelbeispiel wird der spezifische Code des JS-Plug-Ins zur Erzielung des Tab-Effekts als Referenz freigegeben. Der spezifische Inhalt ist wie folgt

1. Seite erstellen

<div class="tab" data-config='{ // Passen Sie die Konfiguration im Tag "triggerType": "click" an,
   "Effekt": "verblassen",
   "aufrufen": 2,
   "auto": 1000
     }'>
  <ul Klasse="Tab-Navigation">
   <li class="active"><a href="javascript:void(0);" >Neuigkeiten</a></li>
   <li><a href="javascript:void(0);" >Unterhaltung</a></li>
   <li><a href="javascript:void(0);" >Filme</a></li>
   <li><a href="javascript:void(0);" >Technologie</a></li>
  </ul>
  <div Klasse="Inhalt">
   <div Klasse="aktueller Inhaltsartikel">
    <img src="./images/pic1.jpg">
   </div>
   <div Klasse="Inhaltselement">
    <img src="./images/pic2.jpg">
   </div>
   <div Klasse="Inhaltselement">
    <img src="./images/pic3.jpg">
   </div>
   <div Klasse="Inhaltselement">
    <img src="./images/pic4.jpg">
   </div>
  </div>
</div>

2. Grundstil

* {
 Rand: 0;
 Polsterung: 0;
}
ul, li {
 Listenstil: keiner;
}
Körper {
 Hintergrund: #323232;
 Schriftgröße: 12px;
 Polsterung: 100px;
}
.tab {
 Breite: 300px;
}
.tab .tab-nav {
 Höhe: 30px;
}
.tab .tab-nav li {
 Anzeige: Inline-Block;
 Rand rechts: 5px;
 Hintergrund: #767676;
 Rahmenradius: 3px 3px 0 0;
}
.tab .tab-nav li a {
 Anzeige: Block;
 Textdekoration: keine;
 Höhe: 30px;
 Zeilenhöhe: 30px;
 Polsterung: 0 20px;
 Farbe: #fff;
}
.tab .tab-nav li.active {
 Hintergrund: #fff;
 Farbe: #777;
}
.tab .tab-nav li.active a {
 Farbe: #777;
}
.tab .inhalt {
 Hintergrund: #fff;
 Höhe: 200px;
 Polsterung: 5px;
}
.tab .Inhaltselement {
 Position: absolut;
 Anzeige: keine;
}
.tab .content img {
 Breite: 290px;
 Höhe: 200px;
}
.tab .inhalt .aktuell {
 Anzeige: Block;
}

3. Wirkung

4. Denkstrukturdiagramm der Tab-Entwicklung: Objekte, Parameter und Methoden sind erforderlich

5. JS-Praxis

(Funktion () {
 Funktion Tab (Registerkarte)
 {
  dies.tab = Tab;
  var _this_ = dies;
  // Standardkonfigurationsparameter, Attributname besteht aus doppelten Anführungszeichen, sonst schlägt das ParseJSON-Escape fehl. this.config = {
   // Wird verwendet, um den Triggertyp der Maus, Klick oder Mouseover zu definieren
   "triggerType": "mouseover",
   // Wird verwendet, um den Inhaltsumschalteffekt zu definieren, ob es sich um einen direkten Umschalteffekt oder einen Ein- und Ausblendeffekt handelt "effect": "default",
   // Die standardmäßig anzuzeigende Registerkarte
   "aufrufen": 1,
   // Wird verwendet, um zu definieren, ob die Registerkarte automatisch wechselt und anzugeben, wie lange der Wechsel dauert „auto“: false
  }
  // Wenn die Konfiguration existiert, erweitern Sie die ursprüngliche Konfiguration und führen Sie sie mit $.extend zusammen, wenn (this.getConfig()) {
   $.extend(diese.config, diese.getConfig());
  }
  // Mausauslöserfunktion var config = this.config; // Speicherkonfiguration, this.config wird jedes Mal suchen this.liItem = this.tab.find('.tab-nav li'); // Li abrufen
  this.contentItem = this.tab.find('.content div'); // Inhalt abrufen // Bestimmen, ob darauf geklickt wird. . Führen Sie während des Betriebs die Aufrufmethode zum Umschalten aus, wenn (config.triggerType === 'click') {
   dies.liItem.click(Funktion () {
    _dieses_.invoke($(dieses));
   });
  } anders {
   dies.liItem.mouseover(Funktion () {
    _dieses_.invoke($(dieses));
   });
  }

  // Automatische Umschaltfunktion if (this.config.auto) {
   dieser.timer = null;
   this.count = 0; // Zähler this.autoplay();
   // Stoppen, wenn die Maus oben ist, und fortfahren, wenn sie wegbewegt wird this.tab.hover(function () {
    clearInterval(_this_.timer); // das ist this.tab
   }, Funktion () {
    _diese_.autoplay();
   })
  }

  // Die Standardanzeigenummer if (this.config.invoke > 1) {
   this.invoke(this.liItem.eq(this.config.invoke - 1)); // Direkter Schalter}
 }

 Tab.prototype = {
  // Konfigurationsparameter abrufen getConfig: function () {
   //Inhalt der Datenkonfiguration aus dem Registerkartenelement entfernen var config = this.tab.attr('data-config');
   if (config && config != '') {
    return $.parseJSON(config); //JSON-Objekt in JS-Objekt konvertieren} else {
    gibt null zurück;
   }
  },
  // Holen Sie sich das übergebene li und wechseln Sie zum Aufruf: Funktion (li) {
   var index = li.index(); // Index von li abrufen var liItem = this.liItem;
   var contentItem = dieses.contentItem;
   
   li.addClass('active').siblings().removeClass('active'); // Aktiv zu sich selbst hinzufügen und andere Geschwister entfernen // Ein- und Ausblenden oder Standard var effect = this.config.effect;
   wenn (Effekt === 'Standard') {
    contentItem.eq(index).addClass('aktuell').geschwister().removeClass('aktiv');
   } anders {
    contentItem.eq(index).fadeIn().geschwister().fadeOut();
   }
   // Beim automatischen Umschalten die Anzahl ändern, sonst jedes Mal von vorne beginnen. this.count = index;
  },
  // Autoplay automatisch umschalten: function () {
   var _this_ = dies;
   var length = this.liItem.length; // Länge ermitteln this.timer = setInterval(function() {  
    _this_.count++; // Anzahl plus eins, das ist this.timer
    if (_this_.count >= Länge) {
     _dieser_.Anzahl = 0;
    }
    // Welches Li-Element löst das Ereignis aus_this_.liItem.eq(_this_.count).trigger(_this_.config.triggerType);
   }, diese.config.auto);
  }
 }

 window.Tab = Tab; // Tab als Fensterobjekt registrieren, sonst ist von außen kein Zugriff möglich})();

6. Anruf

// Übergeben Sie den ersten Tab an die Tab-Klasse var tab = new Tab($('.tab').eq(0));

7. Optimierung: Wenn mehrere Tabs vorhanden sind, müssen nicht mehrere neue erstellt werden

1. Die erste Methode ist über init

// Initialisieren durch init Tab.init = function (tabs) {
  tabs.each(Funktion () {
   neuer Tab($(dieser));
  });
 }

Anruf

Tab.init($('.tab'));

2. Die zweite Methode besteht darin, sich als jQuery-Methode zu registrieren

// Als jQuery-Methode registrieren $.fn.extend({
  Tab: Funktion () {
   this.each(function () { // Wer hat die Tab-Methode aufgerufen? new Tab($(this)); // Dies ist das li, das each verwendet hat.
   });
   gib dies zurück; // Kettenoperation}
 })

Anruf

$('.tab').tab();

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • JavaScript realisiert den Tab-Umschalteffekt (selbstgeschriebenes natives JS)
  • Verwenden Sie vue.js, um einen Tab-Effekt zu schreiben
  • Vue.js-Komponentenregisterkarten, um einen Tab-Umschalteffekt zu erzielen
  • Natives js zum Erzielen eines Tab-Wechsels
  • js implementiert Tab-Funktionscode
  • Die Vue.js-Komponentenregisterkarte implementiert das Wechseln zwischen Registerkarten
  • js einfache Methode zum Realisieren einer vertikalen Registerkarte
  • JS implementiert den Code für Gleitmenüeffekte (einschließlich Tab, Tabulator, horizontal und andere Effekte).
  • 4 JavaScript-Methoden zum einfachen Wechseln zwischen Tabs
  • js, um einen Tab-Tab-Umschalteffekt zu erzielen

<<:  Fehlerbehebung bei Master-Slave-Verzögerungsproblemen beim Upgrade von MySQL 5.6 auf 5.7

>>:  So installieren und konfigurieren Sie GitLab unter Ubuntu 20.04

Artikel empfehlen

Vue implementiert einen Einkaufswagen, der die Einkaufsmenge ändern kann

In diesem Artikel erfahren Sie, wie Sie mit Vue d...

Detaillierte Erklärung, wie Komponenten in React kommunizieren

1. Was ist Wir können die Kommunikation zwischen ...

Implementierung des CSS-Animationseffekts für dynamische Höhenübergänge

Diese Frage stammt aus einer Nachricht auf Nugget...

js, um eine einfache Lotteriefunktion zu erreichen

In diesem Artikel wird der spezifische Code von j...

So implementieren Sie Dual-Machine-Master und Backup mit Nginx+Keepalived

Vorwort Lassen Sie mich zunächst Keepalived vorst...

Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL

Während des Entwicklungsprozesses trat eine Anfor...

HTML-Tabellen-Tag-Tutorial (7): Hintergrundfarbattribut BGCOLOR

Die Hintergrundfarbe der Tabelle kann über das At...

js implementiert zufälligen Namensaufruf

In diesem Artikel wird der spezifische Code von j...