css3和javascript实现的时钟效果

快乐打工仔 分类:实例代码

本章节分享一段代码实例,它利用css3和javascript实现了美观的时钟效果。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style>
body {
background: #ddd;
}
#wrap {
margin-top: 150px;
text-align: center;
}
.box, .box span, .box div {
width: 70px;
height: 120px;
display: block;
line-height: 120px;
font-size: 100px;
text-shadow: 0 0 5px #999;
font-family: 'Helvetica';
}
.box span {
background-image: -webkit-linear-gradient(top,#fefefe 0%,#E0E0E0 100%);
background-image: -moz-linear-gradient(top,#fefefe 0%,#E0E0E0 100%);
background-image: -o-linear-gradient(top,#fefefe 0%,#E0E0E0 100%);
border-radius: 10px;
box-shadow: 0 2px 5px #666,0 -2px 5px #666;
}
.box {
display: inline-block;
border-radius: 10px;
position: relative;
perspective: 400px;
margin: 5px;
}
.box .top {
position: absolute;
height: 50%;
overflow: hidden;
left: 0;
top: 0;
box-shadow: 0 -2px 5px #666;
border-radius: 10px 10px 0 0;
-webkit-transition: all 0.7s;
-webkit-transform-origin: 0 100%;
-webkit-transform-style: preserve-3d;
-moz-transition: all 0.7s;
-moz-transform-origin: 0 100%;
-ms-transform-origin: 0 100%;
-o-transition: all 0.7s;
-o-transform-origin: 0 100%;
}
.box .move {
overflow: hidden;
position: absolute;
bottom: 0;
left: 0;
height: 50%;
perspective: 400px;
}
.box .move div {
position: absolute;
left: 0;
bottom: 0;
height: 100%;
}
.box .move .back span, .box .move .front span {
position: absolute;
left: 0;
bottom: 0;
overflow: hidden;
}
.box .move .back {
border-radius: 0 0 10px 10px;
box-shadow: 0 2px 5px #666;
z-index: 2;
overflow: hidden;
-webkit-transition: all 0.7s;
-webkit-transform: rotateX(-180deg);
-webkit-transform-origin: 0 0;
-webkit-transform-style: preserve-3d;
-moz-transition: all 0.7s;
-moz-transform: rotateX(180deg);
-moz-transform-origin: 0 0;
-ms-transform: rotateX(180deg);
-ms-transform-origin: 0 0;
-o-transition: all 0.7s;
-o-transform: rotateX(180deg);
-o-transform-origin: 0 0;
}
#wrap .box.active .top {
-webkit-transform: translateZ(2px) rotateX(180deg);
-moz-transform: translateZ(2px) rotateX(180deg);
-ms-transform: translateZ(2px) rotateX(180deg);
-o-transform: translateZ(2px) rotateX(180deg);
}
#wrap .box.active .back {
-webkit-transform: translateZ(2px) rotateX(0deg);
-moz-transform: translateZ(2px) rotateX(0deg);
-ms-transform: translateZ(2px) rotateX(0deg);
-o-transform: translateZ(2px) rotateX(0deg);
}
</style>
<script>
window.onload = function() {
var wrap = document.getElementById('wrap');
var boxArr = [];
var lastTime = '000000';
var boxInner = '';
for (var i = 0; i < 8; i++) {
var box = document.createElement('div');
box.className = 'box';
if ((i + 1) % 3) {
boxArr.push(box);
boxInner = '<span>0</span><div class="top"><span>0</span></div><div class="move"><div class="back"><span>0</span></div><div class="front"><span>0</span></div></div>';
} else {
boxInner = '<span class="maohao">:</span>'
}
box.innerHTML = boxInner;
wrap.appendChild(box);
}
function timeString(n) {
return n < 10 ? '0' + n : n + '';
}
function inner() {
var time = new Date();
var curTime = timeString(time.getHours()) + timeString(time.getMinutes()) + timeString(time.getSeconds());
for (var i = 0; i < curTime.length; i++) {
if (curTime.charAt(i) != lastTime.charAt(i)) {
boxArr[i].className = 'box';
boxArr[i].innerHTML = '<span>' + curTime[i] + '</span><div class="top"><span>' + lastTime[i] + '</span></div><div class="move"><div class="back"><span>' + curTime[i] + '</span></div><div class="front"><span>' + lastTime[i] + '</span></div></div>';
(function(n) {
setTimeout(function() {
n.className = 'box active';
}, 20)
})(boxArr[i])
}
}
lastTime = curTime;
}
setInterval(inner, 1000)
}
</script>
</head>
<body>
<div id="wrap"></div>
</body>
</html>

css3和javascript实现的时钟效果,这样的场景在实际项目中还是用的比较多的,关于css3和javascript实现的时钟效果就介绍到这了。

css3和javascript实现的时钟效果属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容