这是一款CSS3超酷3D像素电子时钟动画特效。该电子时钟特效中,电子时钟有多个立方体组成,并在时间跳动使,移动立方体产生动画效果,非常炫酷。
使用方法
HTML代码
整个电子时钟优94个block组成。
<div class="container">
<div class="digit"></div>
<div class="digit"></div>
<div class="digit"></div>
<div class="digit"></div>
<div class="digit"></div>
<div class="digit"></div>
<div class="surface">
<div class="block b1">
<div class="block-outer">
<div class="block-inner">
<div class="bottom"></div>
<div class="front"></div>
<div class="left"></div>
<div class="right"></div>
</div>
</div>
</div>
......
</div>
</div>
CSS代码
.container, .surface, .block, .block-outer, .block-inner {
transform-style: preserve-3d;
}
.container, .block, .digit {
position: absolute;
}
.container {
animation: bounce 2s cubic-bezier(0.4, 0.1, 0.6, 0.9) infinite;
display: flex;
margin: auto;
overflow: hidden;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 29.7em;
height: 10em;
perspective: 800px;
}
.surface {
animation: tilt 2s -1.5s cubic-bezier(0.4, 0.1, 0.6, 0.9) infinite;
display: block;
width: 27em;
height: 1em;
margin: auto;
transform: translateY(2.5em) rotateX(105deg) rotateZ(0deg);
will-change: transform;
}
.block {
bottom: 0;
}
.block-inner div {
background-color: #74d447;
}
.block-inner > div {
display: flex;
flex-wrap: wrap;
align-content: flex-start;
position: absolute;
width: 1em;
height: 1em;
}
.block-inner > div.top:before, .block-inner > div.bottom:before, .block-inner > div.left:before, .block-inner > div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.block-inner > div.top:before, .block-inner > div.bottom:before {
opacity: 0.2;
}
.block-inner > div.left:before, .block-inner > div.right:before {
opacity: 0.4;
}
.block-outer, .block-inner {
position: relative;
width: 1em;
}
.block-outer {
transition: transform 0.3s;
}
.block-inner {
transform: rotateX(-90deg) translateZ(1em);
}
.back {
transform: translateZ(-1em) rotateY(180deg);
}
.left {
transform-origin: center left;
transform: rotateY(270deg) translateX(-1em);
}
.right {
transform-origin: top right;
}
.top, .bottom {
transform-origin: top center;
}
.b1 {
transform: translate3d(0.1em, -0.9em, 4.9em);
}
.b1 .block-inner div.top, .b1 .block-inner div.bottom {
width: 0.8em;
height: 0.8em;
}
.b1 .block-inner div.top {
transform: rotateX(-90deg) translateY(0.2em);
}
.b1 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(0.2em) translateZ(0.8em);
}
.b1 .block-inner div.front, .b1 .block-inner div.back {
width: 0.8em;
height: 0.8em;
}
.b1 .block-inner div.front {
transform: translateZ(-0.2em);
}
.b1 .block-inner div.left, .b1 .block-inner div.right {
width: 0.8em;
height: 0.8em;
}
.b1 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 0em);
}
codepen网址:https://codepen.io/jkantner/pen/KQaZdp