JavaScript zum Erzielen eines Fensteranzeigeeffekts

JavaScript zum Erzielen eines Fensteranzeigeeffekts

In diesem Artikel wird der spezifische JavaScript-Code zur Erzielung des Fensteranzeigeeffekts zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

1. Bauen Sie zuerst das Gerüst

* {
            Rand: 0;
            Polsterung: 0;
        }
        
        .Kasten {
            Breite: 800px;
            Höhe: 190px;
            Rand: 1px durchgezogen #000;
            Rand: 100px automatisch;
        }
        
        ul {
            Listenstil: keiner;
            Anzeige: Flex;
        }
        
        ul img {
            vertikale Ausrichtung: oben;
        }
        
        .Fortschritt {
            Breite: 100 %;
            Höhe: 30px;
            Hintergrund: #ccc;
        }
        
        .Fortschritt>.Zeile {
            Breite: 100px;
            Höhe: 100%;
            Hintergrund: orange;
            Rahmenradius: 15px;
 }
<div Klasse="Box">
        <ul>
            <li>
                <img src="images/img1.jpg" alt="">
            </li>
            <li>
                <img src="images/img2.jpg" alt="">
            </li>
            <li>
                <img src="images/img3.jpg" alt="">
            </li>
            <li>
                <img src="images/img4.jpg" alt="">
            </li>
            <li>
                <img src="images/img5.jpg" alt="">
            </li>
            <li>
                <img src="images/img6.jpg" alt="">
            </li>
            <li>
                <img src="images/img7.jpg" alt="">
            </li>
            <li>
                <img src="images/img8.jpg" alt="">
            </li>
            <li>
                <img src="images/img9.jpg" alt="">
            </li>
            <li>
                <img src="images/img10.jpg" alt="">
            </li>
        </ul>
        <div Klasse="Fortschritt">
            <div Klasse="Zeile"></div>
        </div>
</div>

2. Logischer Teil

Holen Sie sich das Element, das bedient werden muss

Berechnen Sie die Breite von ul

Legen Sie die Breite der UL fest

Berechnen Sie die Breite der Bildlaufleiste

Legen Sie die Breite der Bildlaufleiste fest

Lauschen Sie auf Mausklickereignisse

  • Aktuelle Position der Bildlaufleiste abrufen
  • Ermitteln Sie die Position der gedrückten Maus in der Bildlaufleiste

Auf Mausbewegungsereignisse warten

  • Ermitteln der Position der Maus nach dem Bewegen in der Bildlaufleiste
  • Berechnen Sie den Offset
  • Sicherheitscheck
  • Neupositionieren der Bildlaufleiste
  • Berechnen Sie die Scrolldistanz des Bildes
  • Positionieren Sie das Bild neu
 .Kasten {
           Überlauf: versteckt;
        }
        
        ul {
            Position: relativ;
        }
        
        .Fortschritt {
            Position: relativ;
        }
        
        .Fortschritt>.Zeile {
            Position: absolut;
            links: 0;
            oben: 0;
  }
//1. Das zu bearbeitende Element abrufen const oUl = document.querySelector("ul");
const oItems = oUl.querySelectorAll("li");
const oProgress = document.querySelector(".progress");
const oLine = document.querySelector(".line");
const oBox = document.querySelector(".box");
 
//2. Berechnen Sie die Breite von ul const ulWidth = oItems[0].offsetWidth * oItems.length;
 
//3. Legen Sie die Breite von ul fest oUl.style.width = ulWidth + 'px';
 
//4. Breite der Bildlaufleiste berechnen // Breite der Bildlaufleiste / Bildlaufbereich der Bildlaufleiste = Containerbreite / Inhaltsbereich const progressWidth = oProgress.offsetWidth;
const boxWidth = oBox.offsetWidth;
const Zeilenbreite = Kastenbreite / Zeilenbreite * Fortschrittsbreite;
 
//5. Breite der Bildlaufleiste festlegen oLine.style.width = lineWidth + 'px';
// Maximalen Bildlaufbereich der Bildlaufleiste berechnen const maxLineX = progressWidth - lineWidth;
// Berechnen Sie den maximal scrollbaren Bereich des Bildes const maxImgX = boxWidth - ulWidth;
 
 //6. Auf Mausklick-Ereignisse warten oLine.onmousedown = function(e) {

e = e || Fenster.e;
//a. Aktuelle Position der Bildlaufleiste abrufen let begin = parseFloat(oLine.style.left) || 0;
 
//b. Holen Sie sich die Position, an der die Maus in der Bildlaufleiste gedrückt wird. let mouseX = e.pageX - oBox.offsetLeft;
 
//7. Auf Mausbewegungsereignisse warten oLine.onmousemove = function(e) {
e = e || Fenster.e;
//c. Position der Maus nach dem Bewegen in der Bildlaufleiste abrufen let moveMouseX = e.pageX - oBox.offsetLeft;
 
//d. Berechnen Sie den Offset. let offsetX = moveMouseX - mouseX + begin;
 
//e. Sicherheitsüberprüfung offsetX = offsetX < 0 ? 0 : offsetX;
offsetX = offsetX > maxZeileX ? maxZeileX : offsetX;
 
 //f. Position der Bildlaufleiste zurücksetzen oLine.style.left = offsetX + 'px';
 
//g. Scroll-Distanz des Bildes berechnen // Scroll-Distanz der Bildlaufleiste / maximaler Scroll-Bereich der Bildlaufleiste = Scroll-Distanz des Bildes / maximaler Scroll-Bereich des Bildes // Scroll-Distanz der Bildlaufleiste / maximaler Scroll-Bereich der Bildlaufleiste * maximaler Scroll-Bereich des Bildes = Scroll-Distanz des Bildes const imgOffsetX = offsetX / maxLineX * maxImgX;
 
// h. Bildposition zurücksetzen oUl.style.left = imgOffsetX + "px";
            };
        };
        Dokument.onmouseup = Funktion() {
            oLine.onmousemove = null;
} 

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, um einen Fensteranzeigeeffekt zu erzielen
  • JS realisiert Produktfenster-Spezialeffekte

<<:  Zusammenfassung der DTD-Verwendung in HTML

>>:  Die detaillierteste Installation und Konfiguration von Redis in Docker (mit Bildern und Text)

Artikel empfehlen

Grundlegende Hinweise zu HTML und CSS (unbedingt für das Frontend lesen)

Als ich zum ersten Mal mit HTML in Berührung kam,...

So verwenden Sie crontab zum Hinzufügen geplanter Aufgaben in Linux

Vorwort Das Linux-System wird durch den Systemdie...

Beispiel für die Verwendung einer Keep-Alive-Komponente in Vue

Problembeschreibung (was ist Keep-Alive) Keep-Ali...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

HTML-Elemente durch Anzeige oder Sichtbarkeit verbergen

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

Einfaches Beispiel für HTML-Textformatierung (ausführliche Erklärung)

1. Textformatierung: Dieses Beispiel zeigt, wie T...

Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

Detaillierte Erklärung zum Erstellen geplanter My...

JavaScript implementiert die Kontrollkästchenauswahlfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

Linux-Grep-Befehl Mit dem Linux-Befehl grep könne...

Docker CP kopiert Dateien und gibt den Container ein

Geben Sie den laufenden Container ein # Geben Sie...

Analyse des Konfigurationsprozesses der Nginx-HTTP-Integritätsprüfung

Passive Prüfung Mit passiven Integritätsprüfungen...

Mehrere Möglichkeiten zum Speichern von Bildern in einer MySQL-Datenbank

Normalerweise müssen die von Benutzern hochgelade...