Animierte cube-mag (nur zwei Seiten) - Effekt mit CSS3
Möchte ich zum reproduzieren dieses jsfiddle ich das vorbereitet, basierend auf diese awesome tutorial (bitte überprüfen Sie die demo). Aber ich will nicht die Tasten-Funktionalität, nur auf hover.
Aber, die nur 2 Seiten (Vorder-und Rückseite).
Habe ich versucht, wie diese:
#cube {
position: relative;
margin: 100px auto 0;
height: 300px;
width: 300px;
-webkit-transition: -webkit-transform .5s linear;
-webkit-transform-style: preserve-3d;
-moz-transition: -moz-transform .5s linear;
-moz-transform-style: preserve-3d;
}
.face {
position: absolute;
height: 300px;
width: 300px;
padding: 0px;
background-color: rgba(50, 50, 50, 1);
font-size: 27px;
line-height: 1em;
color: #fff;
border: 1px solid #555;
border-radius: 3px;
}
#cube .one {
-webkit-transform: rotateX(90deg) translateZ(150px);
-moz-transform: rotateX(90deg) translateZ(150px);
background:red;
}
#cube .two {
-webkit-transform: translateZ(150px);
-moz-transform: translateZ(150px);
background:gold;
}
#cube .three {
-webkit-transform: rotateY(90deg) translateZ(150px);
-moz-transform: rotateY(90deg) translateZ(150px);
background:blue;
}
#cube .four {
-webkit-transform: rotateY(180deg) translateZ(150px);
-moz-transform: rotateY(180deg) translateZ(150px);
background:green;
}
#cube .five {
-webkit-transform: rotateY(-90deg) translateZ(150px);
-moz-transform: rotateY(-90deg) translateZ(150px);
background:orange;
}
#cube .six {
-webkit-transform: rotateX(-90deg) rotate(180deg) translateZ(150px);
-moz-transform: rotateX(-90deg) rotate(180deg) translateZ(150px);
}
#cube:hover{
transform:rotateY(90deg);
}
Aber die Wirkung scheint nicht das gleiche zu sein.
Was denken Sie, ist die minimale divs benötigt, um dies zu erreichen erste Geige??
Dank.
- Ich bin irgendwie zweifeln an meiner Antwort nun, da es tatsächlich 2 jsFiddle-demos in Frage. Die erste Geige nicht haben eine Vorder-und Rückseite, es ist eigentlich eine vorne und von der Seite. So, die Geige wollen Sie mithelfen? Auch möchten Sie einen vor-und zurück dreht?
- Die zweite. Ist mein Versagen bei der Entfernung von unerwünschten divs von der fiddle 1 (welches gut funktioniert), Also ich brauche Hilfe mit der zweiten Geige; Wich, verwendet nur 2 Gesichter. danke!
- OK vielen Dank für die Klarstellung. So, die 2 Gesichter soll es sein? Sie drehen möchten, 2 Gesichter, die miteinander verbunden sind, eine vorne und eine von der Seite oder der front-und Rückseite, die nicht verbunden sind?
- Ich aktualisiert meine Antwort für Vorder-und Seitenfläche rotation die Spiele der anderen demo-Geige.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update: So eine leichte Missverständnisse auf, welche Flächen vorhanden sein müssen... also dieses update ist für eine vor und Seite Gesicht rotation.
Jedoch in der ursprünglichen Antwort unten, Punkte 1) und 2) sind immer noch gültig, die Probleme mit dem code. Punkte 3) und 4) nicht mehr gelten, da Sie sich mit der zurück Gesicht. Die restlichen CSS-Regeln können entfernt werden. Man könnte auch ziehen in der Perspektive wrapper zu geben, den cube ein "weniger flach" Aussehen - siehe updated demo.
HTML
CSS
Ursprüngliche Antwort
Gibt es 4 Probleme mit der demo-code, so betrachten wir Sie individuell und sehen, was die Lösung für jeden ist:
1) das HTML hat einen Rechtschreibfehler in der Klasse für die vor Gesicht - es fehlt ein
r
<div class="face font">
statt<div class="face front">
2) Für Webkit-Browser, die Sie verwenden müssen, um die Präfix-Eigenschaft für
transform
-webkit-transform:rotateY(90deg);
statttransform:rotateY(90deg);
3) Die zurück Gesicht, das Sie gewählt haben, ist der falsche Gesicht. Sie haben repurposed die Links Gesicht durch einen Unfall. Die vor Gesicht ist korrekt, das ist ein
<div>
übersetzt150px
nach außen. Also die entsprechenden zurück Gesicht sollte man übersetzt-150px
nach innen. Jedoch, wenn wir nur wissen, dass die position richtig wäre aber, wenn gedreht wird um den Mittelpunkt des Würfels auf die Rückseite würde am Ende nach hinten. Also die richtige zurück Gesicht wird zunächst um 180° gedreht um dieY
Achse. Jedoch, durch Drehung um dieY
Achse translation entlangZ
noch+150px
und nicht-150px
.4) Die Drehung um die zurück Gesicht in die position, wo die vor startet sollte sich eine rotation von 180° und nicht 90°
Putting alle diese änderungen zusammen gibtdieses demo .
HTML
CSS
-moz-transform
aber ich kann nicht testen, bei Firefox im moment. Ich weiß nicht, wie es Ihnen gelingt, verbringen so viel Zeit auf SO, aber ich sehe Sie die ganze Zeit! Sie haben eine sehr beeindruckende Profil 🙂