Kapseln Sie eine Navigationsleistenkomponente in Vue3 ein und erzielen Sie einen Deckeneffekt beim Scrollen der Bildlaufleiste. Das Wirkungsdiagramm der Navigationsleistenkomponente: Schematische Darstellung des Deckeneffekts nach dem Scrollen der Bildlaufleiste: Spezifische Codeanzeige: <Vorlage> <header class="app-header"> <div Klasse="Container"> <!-- Kopfzeilennavigationsbereich --> <HeaderNavCommon /> <div Klasse="Suche"> <i class="iconfont icon-search"></i> <input type="text" placeholder="Suche" /> </div> <div Klasse="Warenkorb"> <a href="#" Klasse="aktuell"> <i class="iconfont icon-cart"></i> <em>2</em> </a> </div> </div> </header> </Vorlage> <Skript> HeaderNavCommon aus '@/components/header-nav-common.vue' importieren Standard exportieren { Name: "AppHeader", Komponenten: HeaderNavCommon } } </Skript> <style scoped lang="weniger"> .app-header { Hintergrund: #fff; .container { Anzeige: Flex; Elemente ausrichten: zentrieren; } .navs { Breite: 820px; Anzeige: Flex; Inhalt ausrichten: Abstand herum; Polsterung links: 40px; li { Rand rechts: 40px; Breite: 38px; Textausrichtung: zentriert; A { Anzeige: Inline-Block; Schriftgröße: 16px; Zeilenhöhe: 32px; Höhe: 32px; } &:schweben { A { Farbe: @xtxColor; Rahmen unten: 1px durchgezogen @xtxColor; } } } } .suchen { Breite: 170px; Höhe: 32px; Position: relativ; Rahmen unten: 1px durchgezogen #e7e7e7; Zeilenhöhe: 32px; .icon-suche { Schriftgröße: 18px; Rand links: 5px; } Eingabe { Breite: 140px; Polsterung links: 5px; Farbe: #666; } } .Warenkorb { Breite: 50px; .aktuell { Höhe: 32px; Zeilenhöhe: 32px; Textausrichtung: zentriert; Position: relativ; Anzeige: Block; .icon-wagen { Schriftgröße: 22px; } em { Schriftstil: normal; Position: absolut; rechts: 0; oben: 0; Polsterung: 1px 6px; Zeilenhöhe: 1; Hintergrund: @helpColor; Farbe: #fff; Schriftgröße: 12px; Rahmenradius: 10px; Schriftfamilie: Arial; } } } } </Stil> Der mittlere Menübereich ist in einer separaten Komponente gekapselt, um die Wiederverwendung von zwei Komponenten zu erreichen (HeaderNavCommon-Komponente). <Vorlage> <ul Klasse="App-Header-Navigation"> <li class="home"><RouterLink zu="/">Zuhause</RouterLink></li> <li><a href="#" >Köstliches Essen</a></li> <li><a href="#" >Küche</a></li> <li><a href="#" >Kunst</a></li> <li><a href="#" >Elektrogeräte</a></li> <li><a href="#" >Startseite</a></li> <li><a href="#" >Pflege</a></li> <li><a href="#" >Schwangerschaft und Säugling</a></li> <li><a href="#" >Kleidung</a></li> <li><a href="#" >Lebensmittel</a></li> </ul> </Vorlage> <Skript> Standard exportieren { Name: "AppHeaderNav" } </Skript> <Stil scoped lang='less'> .app-header-nav { Breite: 820px; Anzeige: Flex; Polsterung links: 40px; Position: relativ; Z-Index: 998; li { Rand rechts: 40px; Breite: 38px; Textausrichtung: zentriert; A { Schriftgröße: 16px; Zeilenhöhe: 32px; Höhe: 32px; Anzeige: Inline-Block; } &:schweben { A { Farbe: @xtxColor; Rahmen unten: 1px durchgezogen @xtxColor; } } } } </Stil> Komponenten zur Kapselung von Deckeneffekten <Vorlage> <div class="app-header-sticky" :class="{ anzeigen: oben >= 78 }"> <div Klasse="Container" v-if="oben >= 78"> <!-- Mitte --> <HeaderNavCommon /> <!-- Rechte Taste --> <div Klasse="rechts"> <RouterLink to="/">Marke</RouterLink> <RouterLink to="/">Thema</RouterLink> </div> </div> </div> </Vorlage> <Skript> HeaderNavCommon aus '@/components/header-nav-common.vue' importieren // importiere { ref } von 'vue' importiere { useWindowScroll } von '@vueuse/core' Standard exportieren { Name: "AppHeaderSticky", Komponenten: { HeaderNavCommon }, aufstellen() { // Seiten-Scrolldistanz // const top = ref(0) // fenster.onscroll = () => { // top.Wert = Dokument.documentElement.scrollTop // } // Seiten-Scrollen mit Drittanbieter-Paketen const { y: top } = useWindowScroll() zurück { nach oben } } } </Skript> <style scoped lang="weniger"> .app-header-sticky { Breite: 100 %; Höhe: 80px; Position: fest; links: 0; oben: 0; Z-Index: 999; Hintergrundfarbe: #fff; Rahmen unten: 1px durchgezogen #e4e4e4; // Das ist der Schlüsselstil!!! // Bewegen Sie sich standardmäßig ganz nach oben transform: translateY(-100%); // Vollständig transparent Opazität: 0; //Angezeigter Klassenname&.show { Übergang: alle 0,3 s linear; transformieren: keine; Deckkraft: 1; } .container { Anzeige: Flex; Elemente ausrichten: zentrieren; } .Rechts { Breite: 220px; Anzeige: Flex; Textausrichtung: zentriert; Polsterung links: 40px; Rahmen links: 2px durchgezogen @xtxColor; A { Breite: 38px; Rand rechts: 40px; Schriftgröße: 16px; Zeilenhöhe: 1; &:schweben { Farbe: @xtxColor; } } } } </Stil> 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:
|
<<: Implementierung von LNMP für die separate Bereitstellung von Docker-Containern
>>: Lösung für den MySQL-Root-Passwortfehler Nummer 1045
1. Systeminstallationspaket yum -y install make g...
Inhaltsverzeichnis Fehlender Stammspeicherort Off...
Ausführung mit nur einem Klick Um Python 3.8 in e...
Ein Satz zur Einführung von HOC Was ist eine Komp...
1. Grundstruktur der Webseite: XML/HTML-CodeInhal...
In diesem Artikel wird der Beispielcode von CSS3 ...
Vorwort Tatsächlich bin ich noch nie auf eine Sit...
Inhaltsverzeichnis Überblick Überprüfen von setTi...
Der Animationsteil von CSS wird von JS blockiert,...
1. Problem Mehrere schwebende Elemente können die...
Dieser Artikel beschreibt, wie man den https-Dien...
1. Installationsumgebung Hier finden Sie auch ein...
Vorwort In Bezug auf das Layout ist Gobang viel e...
Inhaltsverzeichnis einführen Vorbereiten Systemab...
GitHub-Adresse, Sie können es mit einem Stern mar...