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

Drei Schritte zur Lösung des IE-Adressleistensymbol-Anzeigeproblems

<br />Dieses Tutorial zur Erstellung von Web...

Reines HTML+CSS, um einen Tippeffekt zu erzielen

In diesem Artikel wird hauptsächlich der durch re...

Die Verwendung und Methoden von async und await in JavaScript

asynchrone Funktion und await-Schlüsselwort in JS...

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS

Das Filterattribut definiert die visuelle Wirkung...

So beheben Sie den Fehler "ERROR 1045 (28000)" beim Anmelden bei MySQL

Heute habe ich mich beim Server angemeldet und mi...

Zusammenfassung gängiger Docker-Befehle (empfohlen)

1. Zusammenfassung: Im Allgemeinen können sie in ...

Zusätzliche Anweisungen zur Verwendung von Gettern und Aktionen in Vuex

Vorbemerkungen 1.Unterschiede zwischen Vue2.x und...

Detaillierte Erläuterung gängiger Methoden von JavaScript String

Inhaltsverzeichnis 1. charAt Grammatik Parameter ...

Implementierung eines Docker-Cross-Host-Netzwerks (Overlay)

1. Docker-Cross-Host-Kommunikation Zu den hostübe...

So starten Sie ein Vue.js-Projekt

Inhaltsverzeichnis 1. Node.js und Vue 2. Führen S...

XHTML-Einführungstutorial: Verwendung von Listen-Tags

Listen werden verwendet, um eine Reihe ähnlicher o...

Kompilieren Sie CPP-Dateien mit G++ in Ubuntu

Als ich die CPP-Datei zum ersten Mal mit G++ komp...