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

Schritte zum Bereitstellen eines Docker-Projekts in IDEA

Mittlerweile werden die meisten Projekte auf Dock...

Drei Möglichkeiten, um einen Textblinkeffekt im CSS3-Beispielcode zu erzielen

1. Ändern Sie die Transparenz, um ein allmähliche...

Tutorial zur Installation und Konfiguration der Centos7-MySQL-Datenbank

1. Systemumgebung Die Systemversion nach dem Yum-...

So verwendet MySQL Transaktionen

Grundlagen Eine Transaktion ist eine atomare Oper...

MySQL-Deduplizierungsmethoden

MySQL-Deduplizierungsmethoden 【Anfänger】 Es gibt ...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

Semantik: Ist HTML/XHTML wirklich standardkonform?

<br />Originaltext: http://jorux.com/archive...

Konfigurationsmethode für die Mehrfachauswahlfunktion von React Mouse

Im Allgemeinen verfügen Listen über Auswahlfunkti...

VUE + SpringBoot implementiert die Paging-Funktion

Dieser Artikel stellt hauptsächlich vor, wie pagi...