Beispielcode zur Implementierung eines gestapelten Karusselleffekts mit HTML+CSS+JS

Beispielcode zur Implementierung eines gestapelten Karusselleffekts mit HTML+CSS+JS

Wirkung:
Wenn sich die Diashow in eine Richtung bewegt, sollten Größe, Position, Transparenz und Ebene jedes Bildes geändert werden.
Prinzip:
Wenn sich das Karussell nach links bewegt, wird das erste untergeordnete Element bis zum Ende abgeschnitten. Wenn sich das Karussell nach rechts bewegt, wird das letzte untergeordnete Element bis zum Anfang abgeschnitten, um einen nahtlosen Karusselleffekt zu erzielen. Da das nächste li nach dem Abschneiden des li ausgefüllt wird (wenn beispielsweise das erste untergeordnete Element bis zum Ende abgeschnitten wird, wird das zweite untergeordnete Element als erstes untergeordnetes Element ausgefüllt), bleibt der li-Index unverändert. Auf diese Weise werden die Eigenschaften des li an jeder Position (Größe, Position, Transparenz, Ebene) geändert.
HTML Quelltext:

 <Text>
    <div Klasse="kleineBox">
    <div Klasse="arrowLeft">←</div>
    <div class="smallPicBox"> //Verwenden Sie ein Div, um eine UL zu speichern, und legen Sie den anfänglichen Stil für jedes LI in der UL fest<ul>
                <li id="li1" style="position: absolute;top:calc(50% - 200px);left: 0px;z-index:1;background-color: aqua;transform: scale(0.5);transition: 0.3s;opacity: 0.5;background-image: url(./images/01.jpg);background-size: cover;"></li>
                <li id="li2" style="position: absolute;top:calc(50% - 200px);left: 150px; z-index:2;background-color: red;transform: scale(0.7); transition: 0.3s;opacity: 0.7;background-image: url(./images/02.jpg);background-size: cover;"></li>
                <li id="li3" style="position: absolute;top:calc(50% - 200px);left: 300px; z-index:3;background-color: blue;transform: scale(0.9); transition: 0.3s;opacity: 0.9;background-image: url(./images/03.jpg);background-size: cover;"></li>
                <li id="li4" style="position: absolute;top:calc(50% - 200px);left: 450px; z-index:4;background-color: green;transform: scale(1); transition: 0.3s;opacity: 1;background-image: url(./images/04.jpg);background-size: cover;"></li>
                <li id="li5" style="position: absolute;top:calc(50% - 200px);left: 600px; z-index:3;background-color: yellow;transform: scale(0.9); transition: 0.3s;opacity: 0.9;background-image: url(./images/05.jpg);background-size: cover;"></li>
                <li id="li6" style="position: absolute;top:calc(50% - 200px);left: 750px; z-index:2;background-color: gray;transform: scale(0.7); transition: 0.3s;opacity: 0.7;background-image: url(./images/06.jpg);background-size: cover;"></li>
                <li id="li7" style="position: absolute;top:calc(50% - 200px);left: 900px; z-index:1;background-color: deeppink;transform: scale(0.5); transition: 0.3s;opacity: 0.5;background-image: url(./images/07.jpg);background-size: cover;"></li>
            </ul>
        </div>
        <div Klasse="arrowRight">→</div>
    </div>
</div>
</body>

CSS Code:

<Stil>
        *{
            Rand: 0;
            Polsterung: 0;
            Listenstil: keiner;
        }
        .albumBox{
            Breite: 1200px;
            Höhe: 400px;
            Rand: 0 automatisch;
            Rand: 1px durchgezogen #000;
        }

        .smallBox{
            Höhe: 400px;
            Zeilenhöhe: 400px;
            Position: relativ;
        }
        .smallPicBox{
            Breite: 1100px;
            Höhe: 400px;
            schweben: links;
            Position: relativ;
        }
        .smallPicBox ul{
            Breite: 100 %;
            Höhe: 400px;
        }
        .smallPicBox li{
            Breite: 320px;
            Höhe: 400px;
            schweben: links;
            Rand: 1px durchgezogen #000;
            Box-Größe: Rahmenbox;
        }
        .smallBox .current::nach{
            Inhalt: "\25b2";
            Position: absolut;
            oben: -31px;
            links: 70px;
            Farbe: rot;

        }
        .arrowLeft{
            Breite: 50px;
            Höhe: 400px;
            Position: absolut;
            links: 0;
            Rand: 1px durchgezogen #000;
            Box-Größe: Rahmenbox;
            Hintergrundfarbe: grau;
            Z-Index: 10;
        }
        .PfeilRechts{
            Breite: 50px;
            Höhe: 400px;
            Position: absolut;
            rechts: 0;
            Rand: 1px durchgezogen #000;
            Box-Größe: Rahmenbox;
            Hintergrundfarbe: grau;
            Z-Index: 10;
        }
    </Stil>

JS-Code:

<Skript>
        var arrowLeft = document.querySelector(".arrowLeft")
        var Pfeil nach rechts = document.querySelector(".arrowRight")
        var ul = document.querySelector(".smallPicBox ul")
        var li = document.querySelectorAll(".smallPicBox li")
        var timerId = 0
        arrowLeft.onclick=function(){ //Linkspfeil-Klickereignis li=document.getElementsByTagName('li')
                ul.appendChild(li[0]) //Schneide das 0. Kindelement von ul bis zum Ende ab, um ein nahtloses Karussell zu erhalten posi(li) //Ändere die Eigenschaften jedes li}
        arrowRight.onclick=function(){ //Klickereignis für Rechtspfeil li=document.getElementsByTagName('li') //li erneut abrufen
                ul.insertBefore(li[6],li[0]) //Schneide das letzte Kindelement von ul nach vorne, um ein nahtloses Karussell zu erhalten posi(li) //Ändere die Eigenschaften jedes li}
        
        function posi(li){ //Li-Attribut ändern function var n1=0
                for(var x=0;x<li.length;x++){ //Position ändern li[x].style.left=n1+'px'
                    n1 = n1 + 150
                }
                for(var i=0;i<li.length/2;i++){ //Ändere die Ebene li[i].style.zIndex=i+1
                    li[li.Länge-1-i].style.zIndex=i+1
                }
                li[3].style.zIndex='4'
                var n2=0,3
                für (var j = 0; j <li.length/2; j++) { // Skalierung n2 = parseFloat (n2 + 0,2)
                    li[j].style.transform='Skala('+n2+')'
                    li[li.length-1-j].style.transform='Skala('+n2+')'
                }
                li[3].style.transform = "Skala(1)"
                var n3=0,3
                for(var k=0;k<li.length/2;k++){ //Transparenz ändern n3=parseFloat(n3+0.2)
                    li[k].style.opacity=n3
                    li[li.Länge-1-k].Stil.opacity=n3
                }
                li[3].style.opacity='1'
        }
        //Maus rein und raus temerId=setInterval(function(){
             Pfeil nach links.Klick()
        }, 1000);
        Pfeil nach links.beimMouseover=Funktion(){
            Intervall löschen(Timer-ID)
        }
        Pfeil nach links.onmouseout=function(){
           TimerId = Intervall festlegen(Funktion(){
            Pfeil nach links.Klick()
         }, 1000);
        }
        Pfeil nach rechts.beimMouseover=function(){
            Intervall löschen(Timer-ID)
        }
        Pfeil nach rechts.onmouseout=function(){
           TimerId = Intervall festlegen(Funktion(){
            Pfeil nach links.Klick()
         }, 1000);
        }
    </Skript>

Hinweis: In diesem Beispiel wird js direkt in den Text geschrieben. Sie können auch eine separate js-Datei schreiben und diese in die HTML-Schnittstelle einfügen.

Effektbild:

Bildbeschreibung hier einfügen

Damit ist dieser Artikel über Beispielcode zur Implementierung gestapelter Karusselleffekte mit HTML+CSS+JS abgeschlossen. Weitere Informationen zur Implementierung von Karusselleffekten mit HTML+CSS+JS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Detaillierte Vorgänge zum Erstellen des gemeinsamen Clusters und des Spiegelclusters von RabbitMq mit Docker

>>:  So schreiben Sie mithilfe von Filtern transparentes CSS für Bilder

Artikel empfehlen

HTML-Tbody-Verwendung

Strukturierte Tabelle (nur IExplore) 1) Gruppieren...

JavaScript zum Erzielen eines einfachen Karusselleffekts

Was ist ein Karussell? Karussell: In einem Modul ...

9 Tipps für das Webseiten-Layout

<br />Verwandte Artikel: 9 praktische Vorsch...

React realisiert sekundäre Verknüpfung (linke und rechte Verknüpfung)

In diesem Artikel wird der spezifische Code von R...

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

Hinweise zum Zeichengerätetreiber des Linux-Kernel-Gerätetreibers

/******************** * Zeichengerätetreiber*****...

Eine kleine Frage zur Ausführungsreihenfolge von SQL in MySQL

Ich bin heute bei der Arbeit auf ein SQL-Problem ...

Lösung zur Bereinigung des Docker-Festplattenspeichers

Vor einiger Zeit stieß ich auf das Problem, dass ...

Codebeispiele für allgemeine Docker-Datenvolumenvorgänge

Wenn der Entwickler Dockerfile zum Erstellen des ...

Vue.js implementiert eine Timeline-Funktion

In diesem Artikel wird der spezifische Code von V...

Best Practices-Handbuch für partitionierte MySQL-Tabellen

Vorwort: Partitionierung ist ein Tabellenentwurfs...