In diesem Artikel wird der spezifische Code zur Implementierung von 3D-Karusselleffekten mit js als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt Es gibt hauptsächlich Translation und Rotation, um ein 3D-Effektkarussell zu bilden. Ich bin ein Neuling, also geben Sie mir bitte weitere Ratschläge, wenn es irgendwelche Mängel gibt. Der Code lautet wie folgt CSS Code: *{ Polsterung: 0; Rand: 0; } .Kasten{ Position: relativ; Breite: 100 %; Höhe: 100%; oben: 200px; Rand: automatisch; } .warpper{ Position: absolut; Breite: 100 %; Höhe: 100%; Perspektive: 800px; Transformationsstil: 3D beibehalten; } .box .warpper img{ Breite: 300px; Höhe: 200px; schweben: links; Position: absolut; oben: 0; links: 0; unten: 0; rechts: 0; Rand: automatisch; Rahmenradius: 8px; Übergang: alle 1en langsam rein-raus; } .btn{ Position: relativ; oben: 50 %; links: 50%; Breite: 1200px; transformieren: übersetzen(-50 %, -20px); } .btn .links,.btn .rechts{ Höhe: 50px; Breite: 50px; Schriftgröße: 30px; Textausrichtung: zentriert; Zeilenhöhe: 50px; Hintergrundfarbe: schwarz; Farbe: weiß; Randradius: 15 %; Position: absolut; } .btn .links{ links: 0; } .btn .rechts{ rechts: 0; } .btn span:hover{ Hintergrundfarbe: rgba(0,0,0,0,8); } .Punkte{ Position: absolut; links: 50%; unten: 10px; transformieren: übersetzen (-50 %, 200 Pixel); Höhe: 14px; } .Punkte li{ Anzeige: Inline-Block; Listenstil: keiner; Breite: 14px; Höhe: 14px; Rand: 1px durchgezogen #000; Randradius: 50 %; Hintergrundfarbe: weiß; Rand: 0,5px; } .Punkte .aktuell{ Hintergrundfarbe: rot; } HTML Quelltext: <div Klasse="Box"> <div Klasse="Warpper"> <img src="./Inspiration 3.jpg" alt=""> <img src="./Inspirational2.jpg" alt=""> <img src="./2f1d.jpg" alt=""> <img src="./aimg.jpg" alt=""> <img src="./peg.jpg" alt=""> </div> <div Klasse="btn" id="btn"> <span class="left"> < </span> <span class="right"> > </span> </div> <ul Klasse="Punkte"> </ul> </div> <script src="swarp.js"></script> JS-Code: var imgs = document.querySelectorAll("img") var btns = document.querySelectorAll("span") var ul = document.querySelector(".Punkte") var lis = document.getElementsByTagName("li") Var-Zeitgeber var current = 0 // Index des aktuell wiedergegebenen Bildes var flag = true // Klick-Anti-Shake-Drosselung var len = imgs.length // Bildlänge function loadFirst() { imgMove() binden() btnClick() getDot() Punkt anzeigen() autoPlay() } ladenZuerst() Funktion imgMove() { var mlen = Math.floor(Länge / 2) für (var i = 0; i < mlen; i++) { // Aktueller Indexwert des Wiedergabebildes var rimg = current + 1 + i var limg = Länge + aktuell - 1 - i wenn (rimg >= len) { rimg -= Länge } wenn (limg >= len) { limg -= Länge } imgs[limg].style.transform = `translateX(${150 * (i + 1)}px) translateZ(${200 - i * 100}px) rotateY(-30deg)` imgs[rimg].style.transform = `translateX(${-150 * (i + 1)}px) translateZ(${200 - i * 100}px) rotateY(30deg)` } imgs[current].style.transform = ``translateZ(300px)`` } // Automatische Wiedergabefunktion function autoPlay() { Timer = Intervall festlegen(Funktion () { wenn (aktuell >= Länge - 1) { Strom = 0 } anders { aktuell++ } imgMove() autoLi() }, 3000) } // Klicken Sie auf das Bild, um die Funktion bind() { abzuspielen. für (lass i = 0; i < imgs.length; i++) { imgs[i].onclick = Funktion () { Strom = i imgMove() autoLi() } imgs[i].onmouseover = Funktion () { Intervall löschen(Timer) } imgs[i].onmouseout = Funktion () { autoPlay() } } } // Klicken Sie auf die linke und rechte Schaltfläche Funktion btnClick() { für (lass i = 0; i < btns.Länge; i++) { btns[i].onclick = Funktion () { // Verhindere verrücktes Klicken, wenn (!flag) { zurückkehren } Flagge = falsch wenn (i == 0) { // Zurück if (current <= 0) { Strom = Länge - 1 } anders { aktuell-- } } anders { //Weiter wenn (aktuell >= Länge - 1) { Strom = 0 } anders { aktuell++ } } setzeTimeout(Funktion () { Flagge = wahr }, 1000) imgMove() autoLi() } btns[i].onmouseenter = Funktion () { Intervall löschen(Timer) } btns[i].onmouseout = Funktion () { autoPlay() } } } // Punktfunktion getDot() { für (var i = 0; i < len; i++) { ul.innerHTML += `<li></li>` } lis[0].classList.add("aktuell") } Funktion zeigePunkt() { für (sei i = 0; i < len; i++) { lis[i].onclick = Funktion () { für (var j = 0; j < len; j++) { lis[j].classList.remove("aktuell") } diese.classList.add("aktuell") Strom = i imgMove() } } } Funktion autoLi() { für (var i = 0; i < len; i++) { wenn (i == aktuell) { lis[i].classList.add("aktuell") } anders { lis[i].classList.remove("aktuell") } } } 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:
|
<<: Durchführung der lokalen Migration von Docker-Images
>>: Ausführliches Tutorial zur Konfiguration der kostenlosen Installationsversion von MySQL 8.0.23
Dieser Artikel stellt nichts im Zusammenhang mit ...
Vorwort In MySQL ist die Abfrage mehrerer Tabelle...
Inhaltsverzeichnis Abfrage-Cache-Optimierung Über...
Inhaltsverzeichnis Versionshinweise Erstellen ein...
Es ist sehr praktisch, eine Verbindung zu einer R...
01 Das Konzept der parallelen Replikation In der ...
Inhaltsverzeichnis Problemübersicht Reproduktion ...
Der standardmäßige Programmveröffentlichungspfad ...
Hinweis 1: Der gesamte Hintergrund im obigen Bild...
Inhaltsverzeichnis Funktionsprinzip: Was macht de...
Vorwort Aufgrund der schwachen Typisierung von JS...
JavaScript-Umschalteffekt für Bekleidungsalben (ä...
Docker-Installation 1. Anforderungen: Linux-Kerne...
<br />Um zu beweisen, dass sein Engagement f...
Inhaltsverzeichnis Controllertyp von k8s Beziehun...