js, um einen 3D-Karusselleffekt zu erzielen

js, um einen 3D-Karusselleffekt zu erzielen

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:
  • JS-Implementierung eines Karussellbeispiels
  • 3 einfache Möglichkeiten, Karusselleffekte mit JS zu erzielen
  • Reines js, um den Effekt eines Karussells zu erzielen
  • Natives JS zur Implementierung eines atmenden Karussells
  • js, um einen Karusselleffekt zu erzeugen
  • JavaScript imitiert Xiaomi-Karusselleffekt
  • Über die Implementierung des JavaScript-Karussells

<<:  Durchführung der lokalen Migration von Docker-Images

>>:  Ausführliches Tutorial zur Konfiguration der kostenlosen Installationsversion von MySQL 8.0.23

Artikel empfehlen

HTML-Elemente durch Anzeige oder Sichtbarkeit verbergen

Manchmal müssen wir steuern, ob HTML-Elemente auf ...

Drei Möglichkeiten zum Löschen einer Tabelle in MySQL (Zusammenfassung)

Drop-Tabelle Drop löscht Tabelleninformationen di...

Vier Methoden zur Verwendung von JS zur Bestimmung von Datentypen

Inhaltsverzeichnis Vorwort 1. Art von 2. Instanz ...

Implementierungscode zur Verwendung der MongoDB-Datenbank in Docker

Holen Sie sich das Mongo-Image sudo docker pull m...

Detaillierte Erklärung zum Problem der CSS-Klassennamen

Die folgenden CSS-Klassennamen, die mit einer Zah...

Die konkrete Umsetzung des JavaScript-exklusiven Denkens

Im vorherigen Blog hat Xiao Xiong die Methoden ve...

JavaScript-Implementierung der Dropdown-Liste

In diesem Artikelbeispiel wird der spezifische Ja...

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

Websocket+Vuex implementiert eine Echtzeit-Chat-Software

Inhaltsverzeichnis Vorwort 1. Der Effekt ist wie ...

So lassen sich Python-Skripte direkt unter Ubuntu ausführen

Nehmen wir als Beispiel das Übersetzungsprogramm....

Lassen Sie uns über das v-on-Parameterproblem in Vue sprechen

Verwendung von v-on:clock in Vue Ich lerne derzei...