Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Realisierung eines 3D-Fotoalbumeffekts

php中世界最好的语言
Freigeben: 2018-03-22 16:43:22
Original
3823 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Realisierung des 3D-Fotoalbum-Effekts vorstellen. Was sind die Vorsichtsmaßnahmen, um den 3D-Fotoalbum-Effekt zu erzielen? Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Dieser Artikel verwendet CSS3-Attribute, um ohne weiteres einen Blick auf den Effekt zu werfen.

Da die Verwendung einiger Attribute bereits erläutert wurde, wird in diesem Artikel nicht auf Details eingegangen, sondern nur auf den Codierungsprozess dieses Beispiels. Der Projektcode ist der letzte.

Layout

Schauen Sie sich direkt das HTML-Layout an:

    <p class="my-container">  <!-- 大容器 -->
        <p class="photo-wrap">  <!-- 舞台 -->
            <p class="container">   <!-- 相册容器 -->
                <p class="img img01"></p>
                <p class="img img02"></p>
                <p class="img img03"></p>
                <p class="img img04"></p>
                <p class="img img05"></p>
                <p class="img img06"></p>
                <p class="img img07"></p>
                <p class="img img08"></p>
                <p class="img img09"></p>
            </p>
        </p>
    </p>
Nach dem Login kopieren

Stil

Großer Behälter

Der äußerste große Behälter kann den Stil einfach entsprechend der tatsächlichen Situation definieren.

    .my-container {        
        width: 800px;
        height: 500px;
        margin: 20px auto;
    }
Nach dem Login kopieren

Bühnenelement

Perspektivattribut wird verwendet, um einen 3D-Raum zu aktivieren, sodass alle seine Unterelemente einen perspektivischen Effekt haben (Elemente mit 3D-Transformation, In diesem Beispiel handelt es sich um das Album-Containerelement.

    .photo-wrap {
        perspective: 800px;
        width: 800px;
    }
Nach dem Login kopieren

Albumcontainer

Der Transform-Style: Preserve-3D;-Stil des Albumcontainers bedeutet, dass alle untergeordneten Elemente im 3D-Raum gerendert werden.

    .container {
        width: 800px;
        height: 500px;
        margin: 0 auto;
        position: relative;
        transform-style: preserve-3d;
    }
Nach dem Login kopieren

Einzelnes Element

    .img {
        width: 200px;
        height: 118px;
        line-height: 118px;
        text-align: center;
        position: absolute;
        top: 160px;
        left: 300px;
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.9) inset;
        background: pink;
    }
Nach dem Login kopieren

Sehen Sie sich nun den Effekt im Browser an:

Wie Sie aus dem sehen können Bild oben rechts, jetzt alle Die Bilder sind alle an der gleichen Position fixiert. Offensichtlich ist dies nicht der Effekt, den wir wollen. Aber wenn wir den gewünschten Effekt erzielen wollen, wie sollten wir ihn ändern?

Jetzt werden diese Bilder flach im Mittelpunkt des Containers angezeigt. Wenn Sie einen Kreis bilden möchten, müssen Sie das Rotationsattribut verwenden (da er sich also um die Y-Achse drehen muss). es ist rotierenY).

Es gibt hier insgesamt 9 Bilder, also drehen Sie jedes Bild separat entsprechend der Einheit 360/9=40 Grad.

    .img01 {
        transform: rotateY(0deg);
    }
    .img02 {
        transform: rotateY(40deg);
    }
    .img03 {
        transform: rotateY(80deg);
    }
    .img04 {
        transform: rotateY(120deg);
    }
    .img05 {
        transform: rotateY(160deg);
    }
    .img06 {
        transform: rotateY(200deg);
    }
    .img07 {
        transform: rotateY(240deg);
    }
    .img08 {
        transform: rotateY(280deg);
    }
    .img09 {
        transform: rotateY(320deg);
    }
Nach dem Login kopieren

Sehen Sie sich nach dem Hinzufügen der Rotation den Effekt an:

Wir haben festgestellt, dass diese Bilder nicht mehr auf derselben Ebene liegen, aber sie werden alle zusammengedrückt. Versuchen Sie, jedes Bild 300 Pixel vor sich selbst zu verschieben (translateZ) und sehen Sie, was passiert.

    .img01 {
        transform: rotateY(0deg) translateZ(300px);
    }
    .img02 {
        transform: rotateY(40deg) translateZ(300px);
    }
    .img03 {
        transform: rotateY(80deg) translateZ(300px);
    }
    .img04 {
        transform: rotateY(120deg) translateZ(300px);
    }
    .img05 {
        transform: rotateY(160deg) translateZ(300px);
    }
    .img06 {
        transform: rotateY(200deg) translateZ(300px);
    }
    .img07 {
        transform: rotateY(240deg) translateZ(300px);
    }
    .img08 {
        transform: rotateY(280deg) translateZ(300px);
    }
    .img09 {
        transform: rotateY(320deg) translateZ(300px);
    }
Nach dem Login kopieren

Der Effekt nach dem Hinzufügen von Rotation und Bewegung:

Zu diesem Zeitpunkt haben wir den erwarteten Effekt erreicht. Fügen Sie Ihre Lieblingsfotos zu jedem Bild-Tag hinzu und schon kann es losgehen!

Animation

Wenn Sie dieses Fotoalbum bewegen möchten, fügen Sie einfach eine Animation hinzu.

    @keyframes rotateY360 {
        from {
            transform: rotateY(0deg);
        }
        to {
            transform: rotateY(360deg);
        }
    }
Nach dem Login kopieren

Dann fügen Sie dem Containerelement „Albumcontainer“ Animationsattribute hinzu:

 animation: rotateY360 15s ease-in-out infinite;
Nach dem Login kopieren

Endlich sind Sie fertig:

Glauben Sie es Nachdem Sie den Fall in diesem Artikel gelesen haben, beherrschen Sie die Methode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Zusammenfassung des zentrierten CSS-Layouts

Die linke Seite ist fest und die rechte Seite ist adaptiv Layout

Wasserfall-Flow-Layout und unendlich ladender Fotoalbum-Effekt

Das obige ist der detaillierte Inhalt vonRealisierung eines 3D-Fotoalbumeffekts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!