Schauen wir uns zuerst den Fall an. Verwenden Sie zur Implementierung vue+swiper. Wenn die Folie unterschiedliche Höhen hat, wird die Höhe der Box dynamisch berechnet, um die Höhe darunter adaptiv zu machen. Erstellen Sie zuerst das Vue-Projekt. Ich werde es hier nicht im Detail erklären. Installieren Sie dann Swiper. npm installiere swiper --save-dev 1. js-Teil: Initialisieren Sie die Swiper-Komponente. Vue muss im gemounteten Lebenszyklus initialisiert werden. Der Code lautet wie folgt: Swiper von „swiper“ importieren importiere { TweenMax, Power2 } von 'gsap' Die Resize-Funktion wird während der Initialisierung aufgerufen, um die Breite und Höhe des Bildschirmcontainers zu berechnen. Der Code lautet wie folgt // Bildschirmbreite und -höhe neu berechnen resize(swiper) { this.clientWidth = Dokument.documentElement.clientWidth||Dokument.body.clientWidth; this.clientHeight = document.documentElement.clientHeight||document.body.clientHeight; dies.zeichnen(swiper) }, Nach der Berechnung wird die Zeichenfunktion aufgerufen, um die Höhe des Karussellbehälters dynamisch entsprechend der Gleitbewegung zu berechnen. Beachten Sie, dass hier auf das TweenMax-Framework verwiesen wird und dieses vor der Verwendung installiert werden muss. Detaillierte Verwendungsmethoden finden Sie auf der offiziellen Website von TweenMax npm installiere gsap -D Sehen wir uns zunächst an, wie TweenMax verwendet wird. // Höhe des Swiper-Containers dynamisch berechnen draw(swiper) { TweenMax.to(this.tweenObj, 0.5, {übersetzen: swiper.translate, ease: Power2.easeOut, beiUpdate: () => { lass übersetzen = this.tweenObj.translate // Linker Folienindex let iLeft = Math.floor(-translate / this.clientWidth) wenn (iLeft > diese.Folienlänge) { iLeft = diese.slidesLength } // Rechter Folienindex let iRight = iLeft + 1 wenn (iRight > diese.Folienlänge) { iRight = diese.Folienlänge } für (lass i = 0; i < this.swiperSlide.length; i++) { //Wenn die Bildbreite den gesamten Bildschirm abdeckt, beträgt die Höhe jedes Bildes this.swiperSlide[i].fullHeight = this.clientWidth/this.swiperSlide[i].getBoundingClientRect().width * this.swiperSlide[i].getBoundingClientRect().height; } //Bewegungsverhältnis Die Höhe ändert sich während der Bewegung von 0 über 1 zu 0 let percent = Number((-translate / this.clientWidth).toFixed(5)) - iLeft //Entsprechend den linken und rechten Bildern und dem Bewegungsverhältnis wird die entsprechende Höhe ermittelt. let currentHeight = (this.swiperSlide[iRight].fullHeight - this.swiperSlide[iLeft].fullHeight)*Prozent + this.swiperSlide[iLeft].fullHeight // Höhe des Karussellcontainers swiper.el.style.height = currentHeight + 'px' } }) } 2.html Teil <!--Imitation des Karusselleffekts von Ctrip--> <div Klasse="swiper-demo"> <div Klasse="Swiper-Container"> <div Klasse="swiper-wrapper"> <!--Hier muss unbedingt die Höhe vergrößert werden, sonst gibt es Probleme! ! ! --> <div Klasse="swiper-slide" Stil="Höhe: 222px;"> <div Klasse="wrap" v-for="(Element, Index) in Kategorie1" :key="index"> <img src="../assets/wish.png" alt=""> <span>{{item.name}}</span> </div> </div> <!--Hier muss unbedingt die Höhe vergrößert werden, sonst gibt es Probleme! ! ! --> <div Klasse="swiper-slide" Stil="Höhe: 400px;"> <div Klasse="wrap" v-for="(Element, Index) in Kategorie2" :key="index"> <img src="../assets/wish.png" alt=""> <span>{{item.name}}</span> </div> </div> </div> </div> <div style="background: salmon; height: 80vh">Schreiben Sie Ihre eigene Benutzeroberfläche</div> </div>
3. CSS-Teil .swiper-slide { Breite: automatisch; Höhe: 100%; Anzeige: Flex; Flex-Wrap: Umwickeln; Inhalt ausrichten: Abstand dazwischen; } .wickeln { Breite: 24%; Höhe: 100px; Anzeige: Flex; Flex-Richtung: Spalte; Elemente ausrichten: zentrieren; Inhalt ausrichten: zentriert; } img { Breite: 60px; } Auf diese Weise wird ein hochadaptiver Karusselleffekt erreicht. Drei oder mehr Karussells sind kein Problem. Wenn es dir gefällt, folge uns bitte. Hehe~ Dies ist das Ende dieses Artikels über den Vue-Imitations-Ctrip-Karusselleffekt (gleitendes Karussell, unten hochadaptiv). Weitere relevante Vue-Karussellinhalte 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:
|
<<: Anfangseinstellungen nach der Installation von Ubuntu 16 in der Entwicklungsumgebung
Inhaltsverzeichnis Aktualisieren Sie das Bild von...
<br />Originaltext: http://andymao.com/andy/...
Inhaltsverzeichnis Vorbereitende Vorbereitung Imp...
1. Die Bedeutung von Webstandards verstehen - War...
Liste der HTML-Tags markieren Typ Name oder Bedeu...
Inhaltsverzeichnis Überblick Definition Instanzme...
Befehl: mysqlhotcopy Dieser Befehl sperrt die Tab...
Hintergrund-Threads •Hauptthread Der Kern-Hinterg...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis 1. Einleitung 2. Installation ...
Mysql5.5 Dual-Maschine-Hot-Standby Durchführung I...
Syntax: <marquee> …</marquee> Mithilfe...
MySQL-Batch-Einfügeproblem Da bei der Entwicklung...
Ich bin auf den MySQL-FEHLER 1045 gestoßen und ha...
Inhaltsverzeichnis Vorwort Verwenden Sie keine Ze...