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

Eine kurze Diskussion über Schreibregeln für Docker Compose

Dieser Artikel stellt nichts im Zusammenhang mit ...

So erstellen Sie ein Apr-Modul zur Tomcat-Leistungsoptimierung

Vorwort Tomcat ist ein weit verbreiteter Java-Web...

So erstellen Sie schnell zig Millionen Testdaten in MySQL

Bemerkung: Die Datenmenge in diesem Artikel beträ...

Ein kurzer Vortrag über die parasitäre Kompositionsvererbung in JavaScript

Vererbung von Kompositionen Kombinationsvererbung...

JavaScript zum Erzielen eines Texterweiterungs- und -reduzierungseffekts

Die Implementierung des Erweiterns und Reduzieren...

Lösung für das 404/503-Problem beim Anmelden bei TeamCenter12

TeamCenter12 gibt das Kontokennwort ein und klick...

Detaillierte Erklärung der Funktionen jedes Ports von Tomcat

Aus der Tomcat-Konfigurationsdatei können wir ers...

Docker-Bereitstellung – Springboot-Projektbeispielanalyse

Dieser Artikel stellt hauptsächlich die Beispiela...

So finden Sie Websites mit SQL-Injection (unbedingt lesen)

Methode 1: Verwenden Sie die erweiterte Suche von...

Diskussion zum Problem verstümmelter Zeichen in Iframe-Seitenparametern

Ich bin auf ein sehr ungewöhnliches Problem mit ve...

Best Practices für MySQL-Upgrades

MySQL 5.7 fügt viele neue Funktionen hinzu, wie z...