您的位置:首页 > 其它

旋转的3D盒子

2016-10-25 14:07 375 查看
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.camera {
width: 200px;
height: 200px;
perspective-origin: center;
perspective: 200px;
}
.box {
transform-style:preserve-3d;
position:relative;
width:100%;
height:100%;
border:1px dashed #000;
}

.face {
width: 100px;
height: 100px;
background: red;
display: flex;
align-items: center;
justify-content: center;
font-size: 38px;
color: white;
position: absolute;
}
.face1 {
background: #3498db;
transform:translateX(50px) translateY(150px) translateZ(50px);

}
.face2 {
background: #9b59b6;
transform: translateX(100%) translateY(50px) translateZ(0px) rotateY(-90deg);;
}
.face3 {
background: #f1c40f;
transform-origin: 0 0;
transform:translateX(50px) translateY(50px) translateZ(50px) rotateX(-90deg);
}
.face4 {
background: #7f8c8d;
transform-origin: 0 0;
transform:translateX(50px) translateY(150px) translateZ(50px) rotateX(-90deg);
}
.face5 {
background: #2ecc71;
transform-origin: 100% 100%;
transform: translateX(-50%) translateY(50px) translateZ(50px) rotateY(-90deg);
}
.face6 {
background: #34495e;
transform: translateX(50px) translateY(50px)  translateZ(-50px) rotateY(-180deg);
}
.box {
animation: rotate 4s linear infinite ;
}

@keyframes rotate{
0%{
-webkit-transform:rotateY(0) rotateX(0);
}
50%{
-webkit-transform:rotateY(-359.9deg) rotateX(0);
}
100% {
-webkit-transform:rotateY(-359.9deg) rotateX(-359.9deg);
}
}
</style>
<script>
var box = document.querySelectorAll('.box');
window.addEventListener('deviceorientation', function(event) {
var alpha = event.alpha,
beta = event.beta,
gamma = event.gamma;

box[0].style.webkitTransform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';
box[0].style.transform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';
box[0].style.mozTransform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';

}, false);
</script>
</head>
<body>
<div class='camera'>
<div class='box'>
<div class="face face1">1</div>
<div class="face face2">2</div>
<div class="face face3">3</div>
<div class="face face4">4</div>
<div class="face face5">5</div>
<div class="face face6">6</div>
</div>
</div>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: