JS implementiert Karussell mit mehreren Tabs

JS implementiert Karussell mit mehreren Tabs

Karussell-Animationen können das Erscheinungsbild und die interaktive Leistung der Seite verbessern. Als Nächstes lernen wir, mit den Grundkenntnissen der Front-End-Entwicklung wie HTML, CSS und Javascript ein einfaches Karussell zu erstellen.

Einführung Karussell: In einem speziellen Modul einer Website können durch Mausklicks auf einem Computer oder Bewegen der Maus bzw. durch Gleiten des Fingers auf einem Mobiltelefon verschiedene Bilder angezeigt werden. Dieses Modul wird Karussellmodul genannt.

(Wenn ich etwas falsch gemacht habe, können Sie mich gerne kritisieren und korrigieren. Wenn Sie denken, dass es hilfreich ist, geben Sie mir bitte einen Stern~)

HTML-Layoutteil:

<div id="box">
    <div class="Landschaftsbild">
      <img class="show" src="imgs/s2.jpg" alt="Landschaft">
      <img src="imgs/s3.jpg" alt="Landschaft">
      <img src="imgs/s1.jpg" alt="Landschaft">
      <img src="imgs/s5.jpg" alt="Landschaft">
      <img src="imgs/s4.jpg" alt="Landschaft">
    </div>
    <div Klasse="Autobild">
      <img src="imgs/animal4.jpg" alt="Tier">
      <img src="imgs/animal3.jpg" alt="Tier">
      <img src="imgs/animal2.jpg" alt="Tier">
      <img src="imgs/tier1.jpg" alt="Tier">
    </div>
    <div class="Unterhaltungsbild">
      <img src="imgs/entertainment1.jpg" alt="Unterhaltung">
      <img src="imgs/entertainment2.jpg" alt="Unterhaltung">
      <img src="imgs/entertainment3.jpg" alt="Unterhaltung">
      <img src="imgs/entertainment4.jpg" alt="Unterhaltung">
      <img src="imgs/entertainment5.jpg" alt="Unterhaltung">
    </div>
    <div Klasse="linke Leiste">
      <div class="checked">Landschaft</div>
      <div>Berühmtes Auto</div>
      <div>Unterhaltung</div>
    </div>
    <div Klasse="bottombar">
 
    </div>
</div>

CSS-Stilteil:

/* Aus Gründen der Layoutfreundlichkeit wird Flex hauptsächlich in Containern verwendet */
#Kasten {
      Position: relativ;
      Breite: 460px;
      Höhe: 300px;
      Rand: 40px automatisch;
      Rand: 1px durchgezogenes RGB (109, 98, 98);
      Benutzerauswahl: keine;
    }
    /* Seitenleistenlayout */
    .linke Leiste {
      Anzeige: Flex;
      Flex-Richtung: Spalte;
      Inhalt ausrichten: Abstand dazwischen;
      Position: absolut;
      oben: -1px;
      links: -80px;
      Breite: 80px;
      Höhe: 100%;
      Textausrichtung: zentriert;
      Schriftgröße: 20px;
      Cursor: Zeiger;
    }
 
    .leftbar div {
      biegen: 1;
      Zeilenhöhe: 100px;
      Hintergrundfarbe: Kadettenblau;
      Buchstabenabstand: 5px;
    }
 
    .leftbar div:nth-child(2) {
      Rahmen oben: 1px durchgezogen #fff;
      Rahmen unten: 1px durchgezogen #fff;
    }
 
    /* Design im Stil des unteren Schalterknopfs*/
    .bottombar {
      Anzeige: Flex;
      Inhalt ausrichten: Abstand dazwischen;
      Position: absolut;
      unten: -1px;
      rechts: -1px;
      Z-Index: 10;
      Breite: 200px;
      Höhe: 30px;
      Cursor: Zeiger;
    }
 
    .bottombar div {
      biegen: 1;
      Zeilenhöhe: 30px;
      Hintergrundfarbe: rgb(232, 233, 235, .5);
      Textausrichtung: zentriert;
      Schriftstärke: 700;
    }
 
    .bottombar div~div {
      Rahmen links: 1px durchgehend grau;
    }
 
    img {
      Position: absolut;
      Anzeige: Block;
      Breite: 460px;
      Höhe: 300px;
    }
 
    .zeigen {
      Z-Index: 5;
    }
 
    .linke Leiste .überprüft,
    .bottombar .geprüft {
      Hintergrundfarbe: rgb(241, 5, 5);
    }

Teil der JavaScript-Logikimplementierung:

var Box = document.querySelector('#box'), Bild = Box.querySelectorAll('.pic'),
    Idx = 0, Index = 0, Timer = null,
    ltDiv = Box.querySelector('.leftbar'), btDiv = Box.querySelector('.bottombar'),
    Bild = Box.querySelectorAll('img');
 
    Funktion createBtBar(len) {//Den unteren Schalterknopf dynamisch erstellen, var str = '';
      für (var i = 0; i < len; i++) {
        str += `<div>${i + 1}</div>`;
      }
      btDiv.innerHTML = str;
      btDiv.children[0].classList.add('aktiviert');
    }
 
    function initialize() {//Anfänglicher Status der Seite createBtBar(pic[0].children.length);
    }
    initialisieren();
 
    function clearZindex() {//Setze die Positionierungsebene aller Bilder zurück für (var k = 0; k < Img.length; k++) {
        Img[k].classList.remove('anzeigen');
      }
    }
 
    ltDiv.addEventListener('click', (e) => {//Seitenleistenelement wechselnif (e.target.tagName.toLowerCase() === 'div') {
        für (var j = 0; j < ltDiv.children.length; j++) {
          ltDiv.children[j].classList.remove('aktiviert');
        }
 
        klarZindex();
        Idx = 0;
        index = getEleIdx(e.target);
        ltDiv.children[index].classList.add('aktiviert');
        Bild[index].Kinder[0].Klassenliste.add('anzeigen');
        erstelleBtBar(Bild[index].Kinder.Länge);
      }
    });
 
    btDiv.addEventListener('click', (e) => {//Delegate hört auf den unteren Schalterknopf if (e.target.tagName.toLowerCase() === 'div') {
        Funktion changePic(Rückruf) {
          btDiv.children[Idx].classList.remove('aktiviert');
 
          klarZindex();
          Rückruf && Rückruf();
          btDiv.children[Idx].classList.add('aktiviert');
          Bild[index].Kinder[Idx].Klassenliste.add('anzeigen');
        }
        Bildändern(Funktion () {
          Idx = getEleIdx(e.target);
        });
      }
    });
 
    Funktion getEleIdx(Element) {//DOM-Elementindex abrufen var Elemente = Element.parentNode.children;
      für (var i = 0, len = Elemente.Länge; i < len; i++) {
        wenn (Element === Elemente[i]) {
          gebe ich zurück;
        }
      }
    }
 
    Funktion loopShow() {//Schleife automatische Anzeige clearInterval(timer);
      Timer = Intervall festlegen(Funktion () {
        Bild[index].Kinder[Idx].Klassenliste.entfernen('anzeigen');
        btDiv.children[Idx].classList.remove('aktiviert');
        Idx += 1;
        wenn (Idx < 0 || Idx > pic[index].children.length - 1) {
          Idx = 0;
        }
        Bild[index].Kinder[Idx].Klassenliste.add('anzeigen');
        btDiv.children[Idx].classList.add('aktiviert');
      }, 1000);
    }
 
    loopShow();
 
    Box.addEventListener('mouseover', Funktion () {
      clearInterval(timer); //Bewegen Sie die Maus in den Anzeigebereich, um das Karussell anzuhalten });
    Box.addEventListener('mouseout', Funktion () {
      loopShow(); //Um eine automatische Drehung zu erreichen, bewegen Sie die Maus aus dem Anzeigebereich });

Die spezifischen Anzeigeeffekte sind wie folgt:

(Tipp: Bitte bereiten Sie die Bilder vor und legen Sie sie in einem eigenen Ordner ab~)

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:
  • Natives JavaScript, um den Karusselleffekt zu erzielen
  • js, um einen einfachen Karusselleffekt zu erzielen
  • JavaScript zur Implementierung der umfassendsten Codeanalyse eines einfachen Karussells (objektorientiert ES6)
  • JavaScript zur Implementierung eines einfachen Karusselldiagramms, umfassendste Codeanalyse (ES5)
  • js, um den kompletten Code des Karussells zu implementieren
  • Beispielcode zur Implementierung eines Karussells mit nativem JS
  • js, um den Effekt der Unterstützung des Karussell-Bildbeispiels mit Schiebeschalter für Mobiltelefone zu erzielen
  • Einfacher Code zur Implementierung eines JS-Karusselldiagramms
  • js, um zu erreichen, klicken Sie auf die linke und rechte Schaltfläche, um Bilder abzuspielen
  • JavaScript-Implementierung eines Karussellbeispiels

<<:  Lösung für das Problem des verstümmelten chinesischen Codes in der dekomprimierten Version von MySQL

>>:  Verwendung des Linux-Befehls bzip2

Artikel empfehlen

React implementiert dynamische Popup-Fensterkomponente

Wenn wir beim Schreiben einiger UI-Komponenten di...

Beispiel für die Anpassung des Stils des Auswahlfelds für Formulardateien

Code kopieren Der Code lautet wie folgt: <!DOC...

Detaillierte Erklärung des Mindestbreitenwerts von Inline-Blöcken in CSS

Vorwort Vor kurzem habe ich mir abends etwas Zeit...

Detaillierte Erklärung der neuen Erfahrung von Vite

Was ist Vite? (Es ist ein neues Spielzeug im Fron...

Bootstrap 3.0 - Schaltflächenstil für Lernnotizen

In diesem Artikel wird hauptsächlich der Stil der...

Beispiel für den schnellen Aufbau einer LEMP-Umgebung mit Docker

LEMP (Linux + Nginx + MySQL + PHP) ist heutzutage...

Detaillierte Erklärung zur Verwendung von Teleport in Vue3

Inhaltsverzeichnis Zweck des Teleports So funktio...

Erklärung der Funktionsweise und Verwendung von Redux

Inhaltsverzeichnis 1. Was ist Redux? 2. Das Redux...

Tic-Tac-Toe-Spiel in reinem CSS3 implementiert

Wirkung der Operation: html <div Klasse="...

Einführung in die Überwachung des MySQL MHA-Betriebsstatus

Inhaltsverzeichnis 1. Projektbeschreibung 1.1 Hin...