CSS3 realisiert den verschiebbaren Zauberwürfel-3D-Effekt

CSS3 realisiert den verschiebbaren Zauberwürfel-3D-Effekt

Hauptsächlich verwendete Wissenspunkte:

•CSS3 3D-Transformationen •Native JS-Maus-Drag-Ereignisse

•Anzeige:Rasterlayout

Implementierte Funktionen

• 3D Zauberwürfel kann angeklickt und gezogen werden

• Sehen Sie die Wirkung direkt

html:

<div Klasse="Container">
        <div Klasse="Box Standard">
            <div class="pic"><img src="./img/cat.jpg" alt=""></div>
            <div class="pic"><img src="./img/dog.jpg" alt=""></div>
            <div class="pic"><img src="./img/elephant.jpg" alt=""></div>
            <div class="pic"><img src="./img/lion.jpg" alt=""></div>
            <div class="pic"><img src="./img/rabbit.jpg" alt=""></div>
            <div class="pic"><img src="./img/monkey.jpg" alt=""></div>
        </div>
    </div>
    <h1>Klicken Sie zum Wechseln auf die Bildschaltfläche unten</h1>
    <div Klasse="btn">
        <input Typ="Bild" Klasse="1" src="./img/cat.jpg">
        <input Typ="Bild" Klasse="2" src="./img/dog.jpg">
        <input Typ="Bild" Klasse="3" src="./img/elephant.jpg">
        <input Typ="Bild" Klasse="4" src="./img/lion.jpg">
        <input Typ="Bild" Klasse="5" src="./img/Kaninchen.jpg">
        <input Typ="Bild" Klasse="6" src="./img/monkey.jpg">
    </div>

CSS:

   * {
        Rand: 0;
        Polsterung: 0;
    }
    html,
    Körper {
        Breite: 100 %;
        Höhe: 100%;
        Hintergrund: #66677c;
        Textausrichtung: zentriert;
    }
    .container {
        Breite: 300px;
        Höhe: 300px;
        Rand: 50px, automatisch 150px;
        Perspektive: 1200px;
    }
    .Container .Box {
        Breite: 300px;
        Höhe: 300px;
        Position: relativ;
        Transformationsstil: 3D bewahren;
        Übergang: Transformation 0,5 s;
    }
    .container .box .bild {
        Position: absolut;
        links: 0;
        oben: 0;
        Breite: 300px;
        Höhe: 300px;
        Kastenschatten: 0px 0px 5px #fff;
    }
    .container .box .bild img {
        Breite: 100 %;
        Höhe: 100%;
        Cursor: Zeiger;
    }
    .container .box .pic:n-tes-Kind(1) {
        transformieren: übersetzenZ(150px);
    }
    .container .box .pic:nth-child(2) {
        transformieren: Y drehen (-180 Grad) Z verschieben (150px);
    }
    .container .box .pic:nth-child(3) {
        transformieren: Y drehen (90 Grad) Z verschieben (150 Pixel);
    }
    .container .box .pic:n-tes-Kind(4) {
        transformieren: Y drehen (-90 Grad) Z verschieben (150px);
    }
    .container .box .pic:n-tes-Kind(5) {
        transformieren: rotierenX(90 Grad) übersetzenZ(150px);
    }
    .container .box .pic:nth-child(6) {
        transformieren: rotierenX(-90 Grad) übersetzenZ(150px);
    }
    h1 {
        Farbe: #fff;
        Schriftgröße: 30px;
        Rand unten: 30px;
    }
    .btn {
        Anzeige: Raster;
        Inhalt ausrichten: zentriert;
        Rastervorlagenspalten: 100px 100px 100px;
        Rastervorlagenzeilen: 100px 100px;
        Rasterabstand: 15px;
    }
    .btn Eingabe {
        Breite: 100px;
        Höhe: 100px;
        Gliederung: keine;
        Rand: 2px durchgezogen #fff;
    }
    .btn Eingabe:Fokus {
        Rand: 2px durchgezogen #e70;
    }
    .Standard {
        transformieren: verschiebeZ(-150px) dreheX(-10 Grad) dreheY(15 Grad);
    }
    .bild1 {
        transformieren: verschiebeZ(-150px) dreheX(0 Grad) dreheY(0 Grad);
    }
    .image2 {
        transformieren: verschiebeZ(-150px) dreheY(-180 Grad);
    }
    .bild3 {
        transformieren: verschiebeZ(-150px) dreheY(-90 Grad);
    }
    .image4 {
        transformieren: verschiebeZ(-150px) dreheY(90 Grad);
    }
    .image5 {
        transformieren: verschiebeZ(-150px) dreheX(-90 Grad);
    }
    .image6 {
        transformieren: verschiebeZ(-150px) dreheX(90 Grad);
    }

javascript - Argumente:

 (Funktion(){
        var btn = document.getElementsByClassName('btn')[0];
        var box = document.getElementsByClassName('box')[0];
        btn.addEventListener('klicken',Funktion(e){
            var Klassenname = e.Ziel.Klassenname;
            wenn(Klassenname !== 'btn'){
                box.stil = '';
                box.classList.replace(box.classList[1],'Bild'+Klassenname);
            }
        })
        //Maus-Drag-Effekt var xN = 10, yN = 15;
        document.addEventListener('mousedown',Funktion(e){
            e.preventDefault();
            e.stopPropagation();
            var x = e.clientX;
            var y = e.clientY;
            document.addEventListener('mousemove',bewegen);
            document.addEventListener('mouseup', hoch);
            Funktion verschieben(e){
                e.preventDefault();
                e.stopPropagation();
                var x1 = e.clientX;
                var y1 = e.clientY;
                xN += (x1 - x)*0,04;
                yN += (y1 - y)*0,04;
                box.style.transform = 'translateZ(-150px) rotateY(' + xN + 'Grad) rotateX(' + -yN + 'Grad)';
            }
            Funktion nach oben () {
                document.removeEventListener('mousemove', verschieben);
            }
        })
    })()

Zusammenfassen

Oben finden Sie eine Einführung in den verschiebbaren 3D-Effekt des Zauberwürfels basierend auf CSS3. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

<<:  Designtheorie: Eine Methode, um die Herzen der Menschen zu verstehen

>>:  Detaillierte Schritte zum Erstellen der TypeScript-Umgebung und Bereitstellen in VSCode

Artikel empfehlen

Wie füge ich ein Website-Symbol hinzu?

Der erste Schritt besteht darin, eine Software zur...

Implementierung einfacher Tabs mit js

Tab-Auswahlkarten werden auf echten Webseiten seh...

JavaScript-Tippspiel

In diesem Artikel wird der spezifische JavaScript...

So importieren Sie schnell Daten in MySQL

Vorwort: Im täglichen Studium und bei der Arbeit ...

Wie löst Vue das domänenübergreifende Problem des Axios-Request-Frontends?

Inhaltsverzeichnis Vorwort 1. Warum treten domäne...

6 Vererbungsmethoden von JS Advanced ES6

Inhaltsverzeichnis 1. Vererbung der Prototypkette...

Detaillierte Erklärung der Webseiten-Screenshot-Funktion in Vue

Seit Kurzem besteht im Projekt die Anforderung, B...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

Verhindern von SQL-Injection in Webprojekten

Inhaltsverzeichnis 1. Einführung in SQL-Injection...

Nginx implementiert ein Codebeispiel für die https-Websitekonfiguration

https-Basisport 443. Er wird für etwas verwendet,...