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);