CSS kompletter Parallax-Scrolling-Effekt

CSS kompletter Parallax-Scrolling-Effekt

1. Was ist

Beim Parallax-Scrolling handelt es sich um die Bewegung mehrerer Hintergrundebenen mit unterschiedlicher Geschwindigkeit, wodurch ein dreidimensionaler Bewegungseffekt entsteht und ein hervorragendes visuelles Erlebnis geboten wird.

Wir können die Webseite in folgende Ebenen unterteilen: Hintergrundebene, Inhaltsebene, schwebende Ebene

Wenn Sie das Mausrad drehen, bewegt sich jede Ebene mit einer anderen Geschwindigkeit, wodurch ein optischer Unterschiedseffekt entsteht.

2. Umsetzung

Es gibt mehrere Möglichkeiten, mit CSS den Parallax-Scrolling-Effekt zu erzielen:

  • Hintergrundanhang
  • transform:translate3D

Hintergrundanhang

Mit dieser Funktion können Sie festlegen, ob das Hintergrundbild fixiert ist oder mit dem Rest der Seite mitrollt.

Die Werte lauten wie folgt:

  • scrollen: Der Standardwert, das Hintergrundbild bewegt sich, wenn der Rest der Seite scrollt
  • behoben: Das Hintergrundbild bewegt sich nicht, wenn der Rest der Seite scrollt
  • inherit: erbt den Wert des background-attachment-Attributs des übergeordneten Elements

Um eine Scroll-Parallaxe zu erreichen, müssen Sie die Eigenschaft „background-attachment“ auf „fixiert“ setzen, sodass der Hintergrund relativ zum Ansichtsfenster fixiert ist. Auch wenn ein Element über einen Scroll-Mechanismus verfügt, scrollt der Hintergrund nicht mit dem Inhalt des Elements.

Mit anderen Worten: Der Hintergrund wird an seiner Ausgangsposition fixiert.

Der zentrale CSS-Code lautet wie folgt:

Abschnitt {
    Höhe: 100vh;
}

.g-img {
    Hintergrundbild: URL(...);
    Hintergrundanhang: behoben;
    Hintergrundgröße: Abdeckung;
    Hintergrundposition: Mitte Mitte;
}

Das Gesamtbeispiel sieht wie folgt aus:

<Stil>
div {
            Höhe: 100vh;
            Hintergrund: rgba(0, 0, 0, .7);
            Farbe: #fff;
            Zeilenhöhe: 100vh;
            Textausrichtung: zentriert;
            Schriftgröße: 20vh;
        }

        .a-img1 {
            Hintergrundbild: URL (https://images.pexels.com/photos/1097491/pexels-photo-1097491.jpeg);
            Hintergrundanhang: behoben;
            Hintergrundgröße: Abdeckung;
            Hintergrundposition: Mitte Mitte;
        }

        .a-img2 {
            Hintergrundbild: URL (https://images.pexels.com/photos/2437299/pexels-photo-2437299.jpeg);
            Hintergrundanhang: behoben;
            Hintergrundgröße: Abdeckung;
            Hintergrundposition: Mitte Mitte;
        }

        .a-img3 {
            Hintergrundbild: URL (https://images.pexels.com/photos/1005417/pexels-photo-1005417.jpeg);
            Hintergrundanhang: behoben;
            Hintergrundgröße: Abdeckung;
            Hintergrundposition: Mitte Mitte;
        }
</Stil>
 <div Klasse="a-text">1</div>
    <div Klasse="a-img1">2</div>
    <div Klasse="a-text">3</div>
    <div class="a-img2">4</div>
    <div Klasse="a-text">5</div>
    <div class="a-img3">6</div>
    <div Klasse="a-text">7</div>

transform:translate3D

Schauen wir uns zunächst die beiden Konzepte „Transformation“ und „Perspektive“ an:

  • transform: CSS3-Attribut, das Elemente (2D/3D) transformieren kann, einschließlich Verschiebung, Drehung, Skalierung usw.
  • Perspektive: CSS3-Attribut. Wenn das Element eine 3D-Transformation beinhaltet, kann die Perspektive den von unseren Augen wahrgenommenen 3D-Stereoskopieeffekt definieren, d. h. das Raumgefühl

Das 3D-Perspektivdiagramm sieht wie folgt aus:

Zum Beispiel:

<Stil>
    html {
        Überlauf: versteckt;
        Höhe: 100%
    }

    Körper {
        /* Das übergeordnete Element des Parallax-Elements benötigt eine 3D-Perspektive */
        Perspektive: 1px;
        Transformationsstil: 3D bewahren;
         Höhe: 100%;
        Überlauf-y: scrollen;
        Überlauf-x: versteckt;
    }
    #app{
        Breite: 100vw;
        Höhe: 200vh;
        Hintergrund: himmelblau;
        Polsterung oben: 100px;
    }
    .eins{
        Breite: 500px;
        Höhe: 200px;
        Hintergrund: #409eff;
        transformieren: übersetzenZ(0px);
        Rand unten: 50px;
    }
    .zwei{
        Breite: 500px;
        Höhe: 200px;
        Hintergrund: #67c23a;
        transformieren: übersetzenZ(-1px);
        Rand unten: 150px;
    }
    .drei{
        Breite: 500px;
        Höhe: 200px;
        Hintergrund: #e6a23c;
        transformieren: übersetzenZ(-2px);
        Rand unten: 150px;
    }
</Stil>
<div id="app">
    <div Klasse="eins">eins</div>
    <div class="zwei">zwei</div>
    <div Klasse="drei">drei</div>
</div>

Das Prinzip, um auf diese Weise optische Unterschiede zu erzielen, ist wie folgt:

  • Wenn der Container auf „Transform-Style: Preserve-3D“ und „Perspective: XPX“ eingestellt ist, werden die untergeordneten Elemente in diesem Container im 3D-Raum platziert.
  • Untergeordnete Elemente legen unterschiedliche Transformationen fest: translateZ (). Zu diesem Zeitpunkt ist der Abstand zwischen verschiedenen Elementen und dem Bildschirm (unseren Augen) in der 3D-Z-Achsenrichtung unterschiedlich.
  • Da beim Scrollen der Bildlaufleiste die untergeordneten Elemente unterschiedliche Transformationen aufweisen: TranslateZ (), sind auch die Auf- und Ab-Abstände ihres Scroll-TranslateY relativ zum Bildschirm (unseren Augen) unterschiedlich, wodurch der Effekt der Scroll-Parallaxe erzielt wird.

Oben finden Sie Einzelheiten zur Verwendung von CSS zum Erzielen eines Parallax-Scrolling-Effekts. Weitere Informationen zum CSS-Parallax-Scrolling-Effekt finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

<<:  HTML implementiert die Funktion zum automatischen Aktualisieren oder Öffnen eines neuen Fensters für den URL-Link des Elements href

>>: 

Artikel empfehlen

Vue verwendet die Element-el-upload-Komponente, um auf die Grube zu treten

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

So verwenden Sie @media in mobilen adaptiven Stilen

Allgemeiner Handy-Stil: @media alle und (Ausricht...

Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL

Bei der Verwendung einer MySQL-Datenbank treten h...

So fügen Sie die Tomcat-Serverkonfiguration zu Eclipse hinzu

1. Fenster -> Einstellungen, um das Eclipse-Ei...

MySQL-Tutorial: Datendefinitionssprache (DDL), Beispiel, ausführliche Erklärung

Inhaltsverzeichnis 1. Einführung in die Grundfunk...

Detaillierter Code zum Hinzufügen von Electron zum Vue-Projekt

1. Fügen Sie package.json hinzu "Haupt"...

Eine detaillierte Einführung in den wget-Befehl in Linux

Inhaltsverzeichnis Installieren Sie zuerst wget H...

So verwenden Sie den Linux-Befehl „basename“

01. Befehlsübersicht Basisname - entfernt Verzeic...

Mysql 5.7.17 Winx64-Installationstutorial auf Win7

Softwareversion und Plattform: MySQL-5.7.17-winx6...

Ausführliche Erklärung der Closure in JavaScript

Einführung Closure ist eine sehr leistungsstarke ...

So ändern Sie den Bildlaufleistenstil in Vue

Inhaltsverzeichnis Zunächst müssen Sie wissen, da...

HTML ist etwas, das Webseiten-Ersteller lernen und beherrschen müssen.

Welche Vorteile bietet das Erlernen von HTML? 1: ...