实现带翻转动画图片时钟的JavaScript代码

1. 引入必要的CSS和HTML结构
我们需要在HTML中添加一个容器来显示时钟,并在CSS中设置相应的样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF8">
<meta name="viewport" content="width=devicewidth, initialscale=1.0">
<title>Flip Clock</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="flipclock">
<div class="flipcard">
<div class="cardinner hourcontainer">
<div class="cardfront">0</div>
<div class="cardback">0</div>
</div>
</div>
<div class="flipcard">
<div class="cardinner minutecontainer">
<div class="cardfront">0</div>
<div class="cardback">0</div>
</div>
</div>
<div class="flipcard">
<div class="cardinner secondcontainer">
<div class="cardfront">0</div>
<div class="cardback">0</div>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
/* styles.css */
body {
display: flex;
justifycontent: center;
alignitems: center;
height: 100vh;
backgroundcolor: #2c3e50;
}
.flipclock {
display: flex;
gap: 10px;
}
.flipcard {
perspective: 1000px;
}
.cardinner {
width: 60px;
height: 90px;
transition: transform 0.5s;
transformstyle: preserve3d;
}
.cardinner:hover {
transform: rotateY(180deg);
}
.cardfront, .cardback {
position: absolute;
width: 100%;
height: 100%;
backfacevisibility: hidden;
display: flex;
justifycontent: center;
alignitems: center;
fontsize: 2em;
color: white;
backgroundcolor: #3498db;
}
.cardback {
backgroundcolor: #2980b9;
transform: rotateY(180deg);
}
2. JavaScript逻辑实现翻转动画时钟
我们在script.js文件中编写JavaScript逻辑来实现时钟的功能。

// script.js
function updateClock() {
const now = new Date();
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
document.querySelector('.hourcontainer .cardfront').textContent = hours;
document.querySelector('.minutecontainer .cardfront').textContent = minutes;
document.querySelector('.secondcontainer .cardfront').textContent = seconds;
document.querySelector('.hourcontainer .cardback').textContent = hours;
document.querySelector('.minutecontainer .cardback').textContent = minutes;
document.querySelector('.secondcontainer .cardback').textContent = seconds;
}
setInterval(updateClock, 1000); // Update the clock every second
updateClock(); // Initial call to display the clock immediately on page load
相关问题与解答
问题1:为什么需要使用transformstyle: preserve3d;?
答:transformstyle: preserve3d;用于确保3D变换(如旋转)能够正确应用到元素及其子元素上,它告诉浏览器保留子元素的3D位置,即使父元素被旋转或缩放,这对于实现翻转动画效果非常重要。
问题2:如何调整时钟的数字字体大小?
答:要调整时钟的数字字体大小,可以在CSS中找到.cardfront和.cardback选择器,并修改其中的fontsize属性值,将fontsize: 2em;改为fontsize: 3em;即可增大字体大小。

以上就是关于“js实现带翻转动画图片时钟”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!














