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 Überblick 1. Stapeln und Aufhä...
Inhaltsverzeichnis Überblick So nutzen Sie die Mu...
Zusammenfassung: Nginx-Reverse-Proxy für JIRA kon...
Im vorherigen Artikel wurden mehrere Methoden zur...
Inhaltsverzeichnis Vorwort 1. Weniger 2. Importie...
Anwendungsszenario 1: Domänennamenbasierte Umleit...
Ich habe bereits einige grundlegende CSS-Selektor...
Dies ist ein sehr einfacher, reiner CSS3-Hintergr...
Vorne geschrieben Ich habe kürzlich ein spezielle...
Inhaltsverzeichnis Warum day.js verwenden? Moment...
Lassen Sie uns zunächst über den Unterschied spre...
Die Indizierung ähnelt dem Erstellen bibliografis...
Im vorherigen Artikel wurde ein ausführliches Bei...
Dieser Artikel darf gerne geteilt und zusammengef...
In diesem Artikel wird hauptsächlich die Breadcru...