JSFiddle - React, Tailwind, and code Playground
by Stefano Bertoli
HTML
<a href="#">reset</a>
<a id="faccia2" href="#faccia2">target2</a>
<a id="faccia3" href="#faccia3">target3</a>
<div id="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
body,html{
height: 100%;
}
body{
-webkit-transform-style: preserve-3d;
-webkit-perspective: 1000px;
}
#container{
width: 200px;
height: 200px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -100px;
-webkit-transform-style: preserve-3d;
-webkit-transition: -webkit-transform 500ms;
}
#container > div{
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 200px;
opacity: 0.7;
}
#container > div:nth-child(1){
background: red;
-webkit-transform: translateZ(-100px);
}
#container > div:nth-child(2){
background: green;
-webkit-transform: rotateY(90deg) translateZ(100px);
}
#container > div:nth-child(3){
background: orange;
-webkit-transform: rotateY(270deg) translateZ(100px);
}
#container > div:nth-child(4){
background: grey;
-webkit-transform: rotateX(90deg) translateZ(100px);
}
#container > div:nth-child(5){
background: yellow;
-webkit-transform: rotateX(270deg) translateZ(100px);
}
#container > div:nth-child(6){
background: blue;
-webkit-transform: translateZ(100px);
}
#faccia2:target ~ #container{
-webkit-transform: rotateY(90deg) ;
}
#faccia3:target ~ #container{
-webkit-transform: rotateX(90deg) ;
}
JavaScript
document.addEventListener('mousemove', function(evt){
document.body.style.webkitPerspectiveOrigin = evt.clientX + "px " + evt.clientY + "px ";
}, false);