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

Detaillierte Erklärung verschiedener HTTP-Rückgabestatuscodes

Wenn an Ihren Server eine Anforderung zum Anzeige...

So verleihen Sie einer Website ein höheres und ansprechenderes Aussehen

„Wie lässt man eine Website hochwertig aussehen? ...

Aufrufen und Ausführen von Host-Docker-Operationen im Docker-Container

Zunächst einmal ist dieser Beitrag Docker-Neuling...

Implementieren eines Webplayers mit JavaScript

Heute zeige ich Ihnen, wie Sie mit JavaScript ein...

25 neue nützliche Icon-Sets zum Download im Ausland

1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...

Zusammenfassung von 3 Möglichkeiten zum verzögerten Laden eines Vue-Routers

Kein Lazy Loading verwenden importiere Vue von „v...

Bootstrap+Jquery zum Erreichen eines Kalendereffekts

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

Detaillierte Erläuterung der primitiven Werte und Referenzwerte in ECMAScript

Inhaltsverzeichnis Vorwort Was sind dynamische Ei...

Vorteile und Nachteile von JSON sowie Einführung in die Verwendung

Inhaltsverzeichnis 1. Was ist JSON 1.1 Array-Lite...