时间翻牌效果
时间: 2023-07-28 11:09:51 浏览: 172
时间翻牌效果通常用于展示时间轴或时间流逝的情况。它通常是通过将一个日期或时间显示在一个翻牌上,然后通过旋转或翻转这个翻牌来显示下一个日期或时间。这种效果可以使用CSS 3D转换和动画来实现。以下是一个使用CSS实现时间翻牌效果的示例:
HTML:
```html
<div class="flip-clock">
<div class="flip-clock__wrap">
<div class="flip-clock__card flip-clock__card--day">
<div class="flip-clock__top">
<span class="flip-clock__digit flip-clock__digit--day">0</span>
<span class="flip-clock__digit flip-clock__digit--day">0</span>
</div>
<div class="flip-clock__bottom">
<span class="flip-clock__digit flip-clock__digit--day">0</span>
<span class="flip-clock__digit flip-clock__digit--day">1</span>
</div>
</div>
<div class="flip-clock__card flip-clock__card--month">
<div class="flip-clock__top">
<span class="flip-clock__digit flip-clock__digit--month">0</span>
<span class="flip-clock__digit flip-clock__digit--month">0</span>
</div>
<div class="flip-clock__bottom">
<span class="flip-clock__digit flip-clock__digit--month">0</span>
<span class="flip-clock__digit flip-clock__digit--month">1</span>
</div>
</div>
<div class="flip-clock__card flip-clock__card--year">
<div class="flip-clock__top">
<span class="flip-clock__digit flip-clock__digit--year">0</span>
<span class="flip-clock__digit flip-clock__digit--year">0</span>
<span class="flip-clock__digit flip-clock__digit--year">0</span>
<span class="flip-clock__digit flip-clock__digit--year">0</span>
</div>
<div class="flip-clock__bottom">
<span class="flip-clock__digit flip-clock__digit--year">2</span>
<span class="flip-clock__digit flip-clock__digit--year">0</span>
<span class="flip-clock__digit flip-clock__digit--year">2</span>
<span class="flip-clock__digit flip-clock__digit--year">1</span>
</div>
</div>
</div>
</div>
```
CSS:
```css
.flip-clock {
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.flip-clock__wrap {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
.flip-clock__card {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
height: 80px;
width: 50px;
margin: 0 10px;
perspective: 800px;
}
.flip-clock__top,
.flip-clock__bottom {
display: flex;
justify-content: center;
align-items: center;
height: 50%;
width: 100%;
position: absolute;
overflow: hidden;
}
.flip-clock__top {
top: 0;
transform-origin: bottom;
}
.flip-clock__bottom {
bottom: 0;
transform-origin: top;
}
.flip-clock__digit {
font-size: 40px;
font-weight: bold;
color: #333;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
background-color: #fff;
padding: 5px;
box-sizing: border-box;
border-radius: 5px;
}
.flip-clock__digit--day {
width: 30px;
}
.flip-clock__digit--month {
width: 30px;
}
.flip-clock__digit--year {
width: 20px;
}
.flip-clock__card--day {
animation: flip 1s ease-in-out infinite;
animation-delay: 0.5s;
}
.flip-clock__card--month {
animation: flip 1s ease-in-out infinite;
animation-delay: 0.3s;
}
.flip-clock__card--year {
animation: flip 1s ease-in-out infinite;
animation-delay: 0.1s;
}
@keyframes flip {
0% {
transform: rotateX(0deg);
}
50% {
transform: rotateX(90deg);
}
100% {
transform: rotateX(0deg);
}
}
```
这个示例展示了一个简单的时间翻牌效果,其中年、月、日分别在三个翻牌中显示。这个效果可以通过CSS动画实现,其中使用了3D旋转转换来模拟翻牌的效果。
阅读全文