首页 > 代码库 > JS+CSS3实现时钟
JS+CSS3实现时钟
使用js和css3实现的时钟效果,支持firefox,chrom等标准浏览器。下载
效果如图:
javascript:
<script type="text/javascript" src="http://www.mamicode.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function () {
function rotateHand() {
var myDate = new Date();
var s = myDate.getSeconds();
var m = myDate.getMinutes();
var h = myDate.getHours();
var timeNow = h + ":" + m + ":" + s;
var sRotate = s / 60 * 360;
var mRotate = m / 60 * 360 + 6 * s / 60;
var hRotate = (h>12?h-12:h) / 12 * 360 + 30 * m / 60;
$("#second_hand").attr(‘style‘, ‘transform:rotate(‘ + sRotate + ‘deg)‘);
$("#minute_hand").attr(‘style‘, ‘transform:rotate(‘ + mRotate + ‘deg)‘);
$("#hour_hand").attr(‘style‘, ‘transform:rotate(‘ + hRotate + ‘deg)‘);
$("#time_now").empty().append(timeNow);
}
setInterval(rotateHand,200);
})
</script>
css:
<style type="text/css">
#clock_box {
width: 500px;
height: 500px;
border-radius: 250px;
background: #f2f2f2;
position: absolute;
top: 50%;
left: 50%;
margin: -250px 0 0 -250px;
box-shadow: 0 2px 15px rgba(0,0,0,0.2);
}
.clock_h {
width: 4px;
height: 500px;
position: absolute;
top: 0;
left: 50%;
margin-left: -2px;
z-index: 1;
}
.clock_h:before {
content: "";
display: block;
width: 4px;
height: 10px;
position: absolute;
top: 10px;
left: 0;
background: #000;
}
.clock_h:after {
content: "";
display: block;
width: 4px;
height: 10px;
position: absolute;
left: 0;
bottom: 10px;
background: #000;
}
#clock_1 { transform:rotate(30deg); }
#clock_2 { transform:rotate(60deg); }
#clock_3 { transform:rotate(90deg); }
#clock_4 { transform:rotate(120deg); }
#clock_5 { transform:rotate(150deg); }
#clock_6 { transform:rotate(180deg); }
.clock_m {
width: 2px;
height: 500px;
position: absolute;
top: 0;
left: 50%;
margin-left: -1px;
z-index: 1;
}
.clock_m:before {
content: "";
display: block;
width: 2px;
height: 5px;
position: absolute;
top: 10px;
left: 0;
background: #4d4d4d;
}
.clock_m:after {
content: "";
display: block;
width: 2px;
height: 5px;
position: absolute;
left: 0;
bottom: 10px;
background: #4d4d4d;
}
#clock_1_1 { transform:rotate(36deg); }
#clock_1_2 { transform:rotate(42deg); }
#clock_1_3 { transform:rotate(48deg); }
#clock_1_4 { transform:rotate(54deg); }
#clock_2_1 { transform:rotate(66deg); }
#clock_2_2 { transform:rotate(72deg); }
#clock_2_3 { transform:rotate(78deg); }
#clock_2_4 { transform:rotate(84deg); }
#clock_3_1 { transform:rotate(96deg); }
#clock_3_2 { transform:rotate(102deg); }
#clock_3_3 { transform:rotate(108deg); }
#clock_3_4 { transform:rotate(114deg); }
#clock_4_1 { transform:rotate(126deg); }
#clock_4_2 { transform:rotate(132deg); }
#clock_4_3 { transform:rotate(138deg); }
#clock_4_4 { transform:rotate(144deg); }
#clock_5_1 { transform:rotate(156deg); }
#clock_5_2 { transform:rotate(162deg); }
#clock_5_3 { transform:rotate(168deg); }
#clock_5_4 { transform:rotate(174deg); }
#clock_6_1 { transform:rotate(186deg); }
#clock_6_2 { transform:rotate(192deg); }
#clock_6_3 { transform:rotate(198deg); }
#clock_6_4 { transform:rotate(204deg); }
#hour_hand {
width: 10px;
height: 500px;
position: absolute;
top: 0;
left: 50%;
margin-left: -5px;
z-index: 2;
}
#hour_hand:after {
content: "";
display: block;
width: 10px;
height: 180px;
position: absolute;
left: 0;
bottom: 230px;
background: #333;
}
#minute_hand {
width: 6px;
height: 500px;
position: absolute;
top: 0;
left: 50%;
margin-left: -3px;
z-index: 3;
}
#minute_hand:after {
content: "";
display: block;
width: 6px;
height: 210px;
position: absolute;
left: 0;
bottom:230px;
background: #4d4d4d;
}
#second_hand {
width: 2px;
height: 500px;
position: absolute;
top: 0;
left: 50%;
margin-left: -1px;
z-index: 4;
}
#second_hand:after {
content: "";
display: block;
width: 2px;
height: 268px;
position: absolute;
left: 0;
bottom:230px;
background: red;
}
#clock_center {
width: 20px;
height: 20px;
border-radius: 10px;
position: absolute;
top: 50%;
left: 50%;
margin: -10px 0 0 -10px;
background: red;
z-index: 5;
}
#t1,#t2,#t3,#t4,#t5,#t6,#t7,#t8,#t9,#t10,#t11,#t12 {
position: absolute;
width: 20px;
height: 20px;
font: 16px/20px Arial, Helvetica, sans-serif;
text-align: center;
}
#t1 {
top: 55px;
left: 345px;
}
#t2 {
top: 130px;
left: 425px;
}
#t3 {
top: 240px;
right: 25px;
}
#t4 {
bottom: 130px;
left: 425px;
}
#t5 {
bottom: 55px;
left: 345px;
}
#t6 {
bottom: 25px;
left: 240px;
}
#t7 {
bottom: 55px;
left: 135px;
}
#t8 {
bottom: 130px;
left: 60px;
}
#t9 {
top: 240px;
left: 25px;
}
#t10 {
top: 130px;
left: 60px;
}
#t11 {
top: 55px;
left: 135px;
}
#t12 {
top: 25px;
left: 240px;
}
#time_now {
width: 120px;
height: 40px;
position: absolute;
top: 100px;
left: 50%;
margin-left: -60px;
background: rgba(0,0,0,0.03);
text-align: center;
color: #15abdc;
text-shadow: 0 1px 0 #fff;
font: 20px/40px Arial, Helvetica, sans-serif;
box-shadow: 0 1px 0 #fff,
0 1px 1px rgba(0,0,0,0.05) inset;
}
</style>
html:
<div id="clock_box">
<div id="clock_center"></div>
<div id="hour_hand"></div>
<div id="minute_hand"></div>
<div id="second_hand"></div>
<div id="clock_1" class="clock_h"></div>
<div id="clock_2" class="clock_h"></div>
<div id="clock_3" class="clock_h"></div>
<div id="clock_4" class="clock_h"></div>
<div id="clock_5" class="clock_h"></div>
<div id="clock_6" class="clock_h"></div>
<div id="clock_1_1" class="clock_m"></div>
<div id="clock_1_2" class="clock_m"></div>
<div id="clock_1_3" class="clock_m"></div>
<div id="clock_1_4" class="clock_m"></div>
<div id="clock_2_1" class="clock_m"></div>
<div id="clock_2_2" class="clock_m"></div>
<div id="clock_2_3" class="clock_m"></div>
<div id="clock_2_4" class="clock_m"></div>
<div id="clock_3_1" class="clock_m"></div>
<div id="clock_3_2" class="clock_m"></div>
<div id="clock_3_3" class="clock_m"></div>
<div id="clock_3_4" class="clock_m"></div>
<div id="clock_4_1" class="clock_m"></div>
<div id="clock_4_2" class="clock_m"></div>
<div id="clock_4_3" class="clock_m"></div>
<div id="clock_4_4" class="clock_m"></div>
<div id="clock_5_1" class="clock_m"></div>
<div id="clock_5_2" class="clock_m"></div>
<div id="clock_5_3" class="clock_m"></div>
<div id="clock_5_4" class="clock_m"></div>
<div id="clock_6_1" class="clock_m"></div>
<div id="clock_6_2" class="clock_m"></div>
<div id="clock_6_3" class="clock_m"></div>
<div id="clock_6_4" class="clock_m"></div>
<div id="t1">1</div>
<div id="t2">2</div>
<div id="t3">3</div>
<div id="t4">4</div>
<div id="t5">5</div>
<div id="t6">6</div>
<div id="t7">7</div>
<div id="t8">8</div>
<div id="t9">9</div>
<div id="t10">10</div>
<div id="t11">11</div>
<div id="t12">12</div>
<div id="time_now">5:30:25</div>
</div>
JS+CSS3实现时钟