Vue implementiert eine Registerkartennavigationsleiste und unterstützt die Schiebefunktion nach links und rechts

Vue implementiert eine Registerkartennavigationsleiste und unterstützt die Schiebefunktion nach links und rechts

In diesem Artikel werden hauptsächlich die folgenden Themen vorgestellt: Implementierung der Registerkartennavigationsleiste mit Vue, Gleiten nach links und rechts mit Flex-Layout, Berechnen der Schaltflächenposition und automatisches Gleiten zum Anzeigen nicht angezeigter Elemente, wenn auf das zuletzt auf dem ersten Bildschirm angezeigte Element geklickt wird und noch Elemente vorhanden sind, die nicht angezeigt wurden.

Layout der Registerkartennavigationsleiste:

<Abschnitt Klasse="Themenliste">
  <div Klasse="fixed-nav" ref="fixednav">
    <div Klasse="fester Navigationsinhalt">
      <p
        v-for="(Element, Index) im Thema"
        :Schlüssel="Index"
        :Klasse="['Tab-Titel', ActiveId === Index && 'Tab-Auswahl']"
        @click="Tab ändern(index, $ereignis)"
      >
        {{ Artikel }}
      </p>
    </div>
  </div>
</Abschnitt>
Thema: ['CSDN-Blog', 'Blog-Garten', 'Viel Glück bei der College-Aufnahmeprüfung', 'Viel Glück bei der Highschool-Aufnahmeprüfung', 'Kleine Freude', 'Siebzigster Jahrestag'],
Aktive ID: 0

Code für den Stil der Navigationsleiste:

.Themenliste {
  Rand oben: 12px;
}
.feste-Navigation {
  Überlauf-x: scrollen;
  -webkit-overflow-scrolling: berühren;
}
.fixierter-Navigationsinhalt {
  Anzeige: Flex;
}
.tab-Titel {
  Polsterung: 0 13px;
  Rand rechts: 12px;
  Farbe: #141414;
  Rahmenradius: 13px;
  Schriftgröße: 12px;
  Flex-Schrumpfen: 0;
  Höhe: 0,52rem;
  Zeilenhöhe: 0,52rem;
}

An dieser Stelle können wir den folgenden Stil implementieren und die Registerkarte nach links und rechts verschieben:

Bildbeschreibung hier einfügen

Es ist zu beachten, dass im Stilcode flex-shrink : 0 hinzugefügt werden muss, damit die Registerkarte nicht schrumpft, wenn die Breite größer als die Breite des externen Containers ist.

Auf diese Weise wurde unsere grundlegende Tab-Navigationsleiste implementiert. Lassen Sie uns sie nun umsetzen: Wenn Sie auf „Viel Glück bei der Aufnahmeprüfung für die High School“ klicken, wird die gesamte Registerkarte nach links verschoben, um die verbleibenden Registerkartenelemente anzuzeigen.

changeTab(id, Ereignis) {
  // Wenn die ausgewählte nicht mit der aktuell aktiven übereinstimmt if (id !== this.activeId) {
    diese.activeId = ID;
    // Berechnen Sie die Position der aktuellen Schaltfläche, um zu sehen, ob sie verschoben werden muss const spanLeft = event.clientX; // Der linke Abstand des aktuell angeklickten Elements const divBox = document.querySelector(".select-tab").clientWidth / 2; // Die halbe Breite des angeklickten Elements const totalWidths = document.body.clientWidth; // Gesamte Bildschirmbreite const widths = totalWidths / 2; // Die halbe Bildschirmbreite const spanRight = totalWidths - spanLeft; // Der rechte Abstand des Elements const scrollBox = document.querySelector(".fixed-nav"); // Holen Sie das äußerste Element const scrollL = scrollBox.scrollLeft; // Die Distanz, über die die Bildlaufleiste scrollt // Gleiten, wenn der linke oder rechte Abstand des Elements weniger als 100 beträgt if (spanRight < 100 || spanLeft < 100) {
      scrollBox.scrollLeft = scrollL + (spanLeft - Breiten) + divBox;
    }
  }
}

Mit dieser Methode lässt sich zwar ein automatisches Scrollen der Registerkarte realisieren, es besteht jedoch immer noch ein Problem: Beim Gleiten wird die Bildlaufleiste angezeigt, was offensichtlich nicht sehr schön ist.

/*Definieren Sie die Höhe und Breite der Bildlaufleiste und die Höhe und Breite des Hintergrunds entsprechend der Größe der horizontalen und vertikalen Bildlaufleiste*/
::-webkit-scrollbar {
  Breite: 0,01rem;
  Deckkraft: 0;
  Anzeige: keine;
}
/*Definieren Sie den inneren Schatten + die abgerundeten Ecken der Bildlaufleiste*/
::-webkit-scrollbar-track {
  Hintergrundfarbe: #fff;
  Deckkraft: 0;
}
/*Definieren Sie den inneren Schatten + die abgerundeten Ecken des Schiebereglers*/
::-webkit-scrollbar-thumb {
  Breite: 0,01rem;
  Randradius: 0,01rem;
  Deckkraft: 0;
}

Auf diese Weise wird eine Navigationsleiste realisiert, und der Stil der Navigationsleiste kann entsprechend der Geschäftstätigkeit des Unternehmens geändert werden!

Dies ist das Ende dieses Artikels über die Implementierung einer Tab-Navigationsleiste durch Vue, die Links- und Rechtsgleiten unterstützt. Weitere relevante Inhalte zur Links- und Rechtsgleitnavigationsleiste von Vue finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue implementiert eine gleitende Navigation oben links und rechts
  • Vue implementiert Beispielcode für Links- und Rechtsgleiteffekte
  • Vue + Swiper implementiert die Testfragefunktion zum Schieben nach links und rechts
  • Vue verwendet den Swiper zum Wechseln von Bildern durch Wischen nach links und rechts
  • Vue verwendet Better-Scroll, um Gleiten und Links-Rechts-Verknüpfung zu erreichen
  • Detaillierte Erläuterung der Links- und Rechtsschiebeereignisse auf dem Vue-Mobilterminal
  • Das mobile Terminal von Vue realisiert die Animation des nach links und rechts gleitenden Mobiltelefons
  • So realisieren Sie einen Links- und Rechts-Gleiteffekt auf mobilen Endgeräten in Vue
  • Implementierung des Links- und Rechtsschiebeeffekts beim Seitenwechsel basierend auf Vue
  • Detaillierte Erläuterung der Verwendung der linken und rechten Schiebetastengruppenkomponente von Vue

<<:  Implementierung von Zugriffskontrolle und Verbindungsbeschränkung basierend auf Nginx

>>:  Erläuterung der Truncate Table-Verwendung

Artikel empfehlen

So stellen Sie Tomcat stapelweise mit Ansible bereit

1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...

Detaillierte Erläuterung des SSR-Server-Side-Rendering-Beispiels von Vue

Warum Server-Side Rendering (SSR) verwenden? Bess...

Vue implementiert die Drag & Drop-Funktion für Bilder

In diesem Artikelbeispiel wird der spezifische Co...

Methoden und Probleme bei der Installation von MariaDB in CentOS unter MySQL

Löschen Sie die zuvor installierte MariaDB 1. Ver...

Zusammenfassung zum Erstellen und Verwenden von Array-Methoden in Bash-Skripten

Definieren eines Arrays in Bash Es gibt zwei Mögl...

Einige Kenntnisse über die absolute und relative Positionierung von Seitenelementen

Ab heute werde ich regelmäßig kleine Wissenspunkte...

Einfache Implementierungsmethode der bidirektionalen Datenbindung im JS-Projekt

Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...

Detaillierte Erklärung zur Verwendung des HTML-Webpack-Plugins

Kürzlich habe ich html-webapck-plugin zum ersten ...

Analyse des Linux-Hochleistungsnetzwerk-IO- und Reaktormodells

Inhaltsverzeichnis 1. Einführung in grundlegende ...

Praxis der Linux-Datei- und Benutzerverwaltung

1. Zeigen Sie die Dateien oder Verzeichnisse im V...