实现时钟翻牌器倒计时效果
时间: 2023-10-15 21:04:00 浏览: 230
好的,你可以使用 HTML、CSS 和 JavaScript 实现时钟翻牌器倒计时效果。以下是一个简单的实现示例:
HTML 代码:
```html
<div class="flip-clock">
<div class="flip-clock__days flip-clock__part"></div>
<div class="flip-clock__hours flip-clock__part"></div>
<div class="flip-clock__minutes flip-clock__part"></div>
<div class="flip-clock__seconds flip-clock__part"></div>
</div>
```
CSS 代码:
```css
.flip-clock {
display: flex;
justify-content: center;
align-items: center;
height: 100px;
}
.flip-clock__part {
display: flex;
flex-direction: row-reverse;
}
.flip-clock__part > * {
position: relative;
width: 40px;
height: 50px;
margin-right: -5px;
transform-origin: bottom center;
font-size: 36px;
font-weight: bold;
color: #fff;
background-color: #000;
}
.flip-clock__part > * > * {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
font-weight: normal;
color: #000;
background-color: #fff;
transform: rotateX(0deg);
transition: transform 0.5s;
}
.flip-clock__part > * > *:last-child {
transform: rotateX(-180deg);
}
```
JavaScript 代码:
```javascript
function updateClock(endtime) {
const total = Date.parse(endtime) - Date.parse(new Date());
const seconds = Math.floor((total / 1000) % 60);
const minutes = Math.floor((total / 1000 / 60) % 60);
const hours = Math.floor((total / (1000 * 60 * 60)) % 24);
const days = Math.floor(total / (1000 * 60 * 60 * 24));
document.querySelector('.flip-clock__days').innerHTML = pad(days, 2);
document.querySelector('.flip-clock__hours').innerHTML = pad(hours, 2);
document.querySelector('.flip-clock__minutes').innerHTML = pad(minutes, 2);
document.querySelector('.flip-clock__seconds').innerHTML = pad(seconds, 2);
}
function pad(num, size) {
let s = num + '';
while (s.length < size) s = '0' + s;
return s;
}
const endTime = new Date('2021-12-31T23:59:59');
setInterval(() => updateClock(endTime), 1000);
```
在这个示例中,我们使用了一个名为 `flip-clock` 的容器来包含四个翻牌器元素,分别表示天、小时、分钟和秒。每个翻牌器元素都由两个子元素组成,一个用于显示当前值,另一个用于显示下一个值。我们使用 CSS 的 3D 转换效果来实现翻牌器的动画效果。在 JavaScript 中,我们使用 `setInterval` 函数来更新翻牌器的值,并将其格式化为两位数字。
阅读全文