Native JS-Kapselung vue Tab-Umschalteffekt

Native JS-Kapselung vue Tab-Umschalteffekt

In diesem Artikelbeispiel wird der spezifische Code der nativen JS-Kapselung Vue Tab Switching als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

Schauen Sie sich zunächst das Effektbild an

Verwendete Technologie

vue, js, css3

Vue-Komponenten können direkt verwendet werden

<Vorlage>
  <div Klasse="bookcircle-header">
    <ul class="wrapper" :class="headerActive == 0 ? 'Freund' : 'Bücherliste'">
      <li @click="headerChange(0)" :class="headerActive == 0 ? 'aktiv' : ''">
        Buchfreunde</li>
      <li @click="headerChange(1)" :class="headerActive == 1 ? 'aktiv' : ''">
        Bücherliste</li>
    </ul>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Komponenten: {},
  Daten() {
    zurückkehren {
      HeaderAktiv: 0,
    };
  },
  berechnet: {},
  erstellt() {},
  montiert() {
    //Senden initialisieren this.$emit("change", this.headerActive);
  },
  Methoden: {
    Headeränderung(index) {
      Dies.headerActive = Index;
      dies.$emit("ändern", index);
    },
  },
};
</Skript>

<style lang="less" scoped>
.bookcircle-header {
  Höhe: 42px;
  Anzeige: Flex;
  Inhalt ausrichten: zentriert;
  Elemente ausrichten: zentrieren;
  .wrapper {
    Breite: 286px;
    Schriftgröße: 14px;
    Höhe: 29px;
    Farbe: #1489fe;
    Rand: 1px durchgezogen #1489fe;
    Rahmenradius: 14px;
    Anzeige: Flex;
    Inhalt ausrichten: zentriert;
    Elemente ausrichten: zentrieren;
    Position: relativ;
    box-sizing: border-box; // Randüberlauf beheben und Rand in die Box einschließen li {
      biegen: 1;
      Höhe: 100%;
      Anzeige: Flex;
      Inhalt ausrichten: zentriert;
      Elemente ausrichten: zentrieren;
      Z-Index: 2;
    }
    .aktiv {
      Farbe: weiß;
    }
    &::vor {
      Inhalt: "";
      Breite: 143px;
      Höhe: 100%;
      Hintergrundfarbe: #1489fe;
      Position: absolut;
      oben: 0px;
      links: 0px;
      Rahmenradius: 13px 0px 0px 13px;
      Z-Index: 1;
      Übergang: alle 0,3 s;
    }
    &.Freund::vor {
      transformieren: übersetzenX(0);
      Rahmenradius: 13px 0px 0px 13px;
    }
    &.booklist::before {
      transformieren: übersetzenX(100%);
      Rahmenradius: 0px 13px 13px 0px;
    }
  }
}
</Stil>

Umsetzungsprinzip:

Verwenden Sie ul, li und flexible Box. Legen Sie zuerst die Breite und Höhe des übergeordneten Elements fest. Verwenden Sie dann die flexible Box, um das untergeordnete Element li horizontal zu erweitern. Legen Sie flex: 1 für das untergeordnete Element li fest, damit das untergeordnete Element die Breite des übergeordneten Elements hat.

Legen Sie dann ein Pseudoelement für das übergeordnete Element fest, um das erste li-Element absolut positioniert abzudecken, und verwenden Sie das Z-Index-Attribut, um die hierarchische Anzeigebeziehung zwischen dem Pseudoelement und dem untergeordneten Element zu steuern.

Legen Sie dann das Übergangsattribut für das Pseudoelement fest und verwenden Sie das Attribut „transform: translateX();“, um das Element horizontal zu verschieben.

Notiz:

1. Obwohl das Klickereignis des Schalters auf dem untergeordneten Element liegt und der aktive Stil dem untergeordneten Element hinzugefügt wird, wird der Umschalteffekt der Registerkarte nicht durch das untergeordnete Element, sondern durch das Pseudoelement des übergeordneten Elements erreicht.
2. Sie müssen eine dynamische Klasse für das übergeordnete Element basierend auf dem Index des untergeordneten Elements festlegen, damit das Pseudoelement des übergeordneten Elements die Umschaltanimation basierend auf dem ausgewählten untergeordneten Element ausführen kann
3. Diese Komponente verwendet Taobao amfe-flexible und Postcss-Anpassung. Bitte achten Sie bei der Verwendung auf die Anpassungsprobleme.

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:
  • Detaillierte Erläuterung des Installations- und Verpackungsfalls von JavaScript Axios
  • Detaillierte Analyse von Homologie und Domänenübergreifendkeit, JSONP (Funktionskapselung), CORS-Prinzip
  • Vue.js verwaltet die Kapselung von Hintergrundtabellenkomponenten
  • Detaillierte Erläuterung der objektorientierten Praxis von JavaScript: Kapselung und Ziehen von Objekten
  • Native JS-Kapselung, nahtlose Karussellfunktion
  • js implementiert eine einfache Methode zur Kapselung von jQuery und eine detaillierte Erklärung der Kettenoperationen
  • js implementiert einige Funktionen der Eingabekomponente in Element und kapselt sie in eine Komponente (Beispielcode)
  • JavaScript implementiert ein Prototyp-Kapselungskarussell
  • Kapselungsmethode der JavaScript-Zeitlupenanimationsfunktion
  • JavaScript Canvas-Kapselung dynamische Uhr
  • Über Jacksons JSON-Tool-Klassenkapselung JsonUtils-Nutzung
  • Beispielcode für die JavaScript-Kapselung einer einfach verketteten Liste
  • Allgemeine Front-End-JavaScript-Methodenkapselung

<<:  So konfigurieren Sie MySQL auf einem Ubuntu-Server und implementieren eine Remote-Verbindung

>>:  VMware Workstation ist nicht mit Device/Credential Guard kompatibel

Artikel empfehlen

Installieren Sie MySQL 5.7.17 im Win10-System

Das Betriebssystem Win10 MySQL ist die 64-Bit-ZIP...

Referenzschreiben im JS- und CSS-Stil

CSS: 1. <link type="text/css" href=&q...

Einführung in die Cloud-native-Technologie Kubernetes (K8S)

Inhaltsverzeichnis 01 Was ist Kubernetes? 02 Der ...

So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

In diesem Artikel zeigt Ihnen der Blogger die häu...

Implementierungscode zum Betreiben einer MySQL-Datenbank in Golang

Vorwort Golang stellt das Datenbank-/SQL-Paket fü...

30 kostenlose hochwertige englische Ribbon-Schriftarten

30 kostenlose englische Ribbon-Schriftarten in hoh...

Schritte zur Annotation von Metadeklarationen

Schritte zur Annotation von Metadeklarationen: 1. ...

Erstellen einer verteilten Selenium-Umgebung basierend auf Docker

1. Laden Sie das Bild herunter Docker-Pull Seleni...

Details zum Vergleich der MySQL-Datenkomprimierungsleistung

Inhaltsverzeichnis 1. Testumgebung 1.1 Hardware u...

Vue implementiert eine Komponente zur dynamischen Abfrageregelgenerierung

1. Dynamische Abfrageregeln Die dynamischen Abfra...

Nicht alle Pop-ups sind betrügerisch. Tipps zum Entwerfen von Website-Pop-ups

Popup-Nachrichten sind bei inländischen Internetd...