ноя
13
2016
Трехмерный куб на CSS3
Трехмерный куб при помощи CSS transform
1
2
3
4
5
6
index.html
<div id="wrapper">
<div id="cube" class="animate">
<div class="side" id="side1">1</div>
<div class="side" id="side2">2</div>
<div class="side" id="side3">3</div>
<div class="side" id="side4">4</div>
<div class="side" id="side5">5</div>
<div class="side" id="side6">6</div>
</div>
</div>
main.css
#wrapper {
perspective: 900px;
max-width: 400px;
margin: 150px auto;
}
#cube {
position: relative;
width: 300px;
height: 300px;
transform-origin: 50% 50% -150px;
transform-style: preserve-3d;
transform: rotate3d(1,1,1,160deg);
will-change: transform;
}
.side{
width: 300px;
height: 300px;
background: rgba(0,0,0,.3);
background: -moz-radial-gradient(rgba(0,0,0,.1), rgba(0,0,0,.5));
position: absolute;
border: 10px solid #567E7D;
border-radius: 10px;
font-size: 5em;
color: #fff;
line-height: 300px;
text-align: center;
text-shadow: 0 1px 3px rgba(0,0,0,.4);
box-shadow: 0 0 6px rgba(0,0,0,.5);
transform-origin: 50% 50% -150px;
}
#side2 {
transform: rotateY(90deg);
}
#side3 {
transform: rotateY(-90deg);
}
#side4 {
transform: rotateX(90deg);
}
#side5 {
transform: rotateX(-90deg);
}
#side6 {
transform: rotateY(180deg);
}
@keyframes cubeAnimation {
from {transform: rotate3d(1,1,1,160deg);}
50% {transform: rotate3d(1,1,1,0deg);}
75% {transform: rotate3d(1,1,1,360deg);}
to {transform: rotate3d(1,1,1,160deg);}
}
.animate {
animation: cubeAnimation 6s infinite linear 2s;
}
Материалы по теме:
Уроки по CSS/CSS3. Часть 18. Трехмерный куб на CSS3
Sorax. Уроки веб-разработки