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

Ein Designer beschwert sich erneut über die offizielle Website von Hammer

Letztes Jahr war der offene Brief ein großer Erfo...

js, um einen einfachen Taschenrechner zu erstellen

In diesem Artikel finden Sie den spezifischen Cod...

Analyse des Prinzips des dynamischen Proxys des Mybatis-Mappers

Vorwort Bevor wir mit der Erklärung des Prinzips ...

Implementierungsbeispiel für die Message Board-Funktion von Node.js+Express

Inhaltsverzeichnis Nachrichtenbrett Erforderliche...

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....

So konvertieren Sie eine Zeichenfolge in JavaScript in eine Zahl

Inhaltsverzeichnis 1.parseInt(Zeichenfolge, Basis...

Details der MySQL-Berechnungsfunktion

Inhaltsverzeichnis 2. Feldverkettung 2. Geben Sie...

Detailliertes Tutorial zum Kompilieren und Installieren von Python3.6 unter Linux

1. Gehen Sie zunächst auf die offizielle Website ...