js制作会走的时钟

时钟根据时间走动
效果图:
在这里插入图片描述
代码实现:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>时钟</title>
		<style type="text/css">
			.box{
				width: 300px;
				height: 300px;
				/* background-color: #000000; */
				border-radius: 50%;
				border: 10px solid black;
				box-shadow: 0 0 10px black;
				margin: 20px auto;
			}
			.kd{
				width: 300px;
				height: 300px;
				line-height: 300px;
				border-radius: 50%;
				text-align: center;
				position: relative;
				background-color: lightgray;
			}
			.kd span{
				display: inline-block;
				width: 20px;
				height: 20px;
				font-size: 25px;
				line-height: 20px;
				position: absolute;
				top: 6px;
				left: 140px;
				transform-origin: 10px 140px;
			}
			.kd span i{
				display: inline-block;
				font-style: normal;
			}
			.kd span:nth-child(1){
				transform: rotate(30deg);
			}
			.kd span:nth-child(1)>i{
				transform: rotate(-30deg);
			}
			
			.kd span:nth-child(2){
				transform: rotate(60deg);
			}
			.kd span:nth-child(2)>i{
				transform: rotate(-60deg);
			}
			
			.kd span:nth-child(3){
				transform: rotate(90deg);
			}
			.kd span:nth-child(3)>i{
				transform: rotate(-90deg);
			}
			
			.kd span:nth-child(4){
				transform: rotate(120deg);
			}
			.kd span:nth-child(4)>i{
				transform: rotate(-120deg);
			}
			
			.kd span:nth-child(5){
				transform: rotate(150deg);
			}
			.kd span:nth-child(5)>i{
				transform: rotate(-150deg);
			}
			
			.kd span:nth-child(6){
				transform: rotate(180deg);
			}
			.kd span:nth-child(6)>i{
				transform: rotate(-180deg);
			}
			
			.kd span:nth-child(7){
				transform: rotate(210deg);
			}
			.kd span:nth-child(7)>i{
				transform: rotate(-210deg);
			}
			
			.kd span:nth-child(8){
				transform: rotate(240deg);
			}
			.kd span:nth-child(8)>i{
				transform: rotate(-240deg);
			}
			
			.kd span:nth-child(9){
				transform: rotate(270deg);
			}
			.kd span:nth-child(9)>i{
				transform: rotate(-270deg);
			}
			
			.kd span:nth-child(10){
				transform: rotate(300deg);
			}
			.kd span:nth-child(10)>i{
				transform: rotate(-300deg);
			}
			
			.kd span:nth-child(11){
				transform: rotate(330deg);
			}
			.kd span:nth-child(11)>i{
				transform: rotate(-330deg);
			}
			
			/* 这是我们的简便方法
			   我们可以采用定位位置	
			*/
			#h{
				width: 14px;
				height: 80px;
				background-color: #7b959a;
				position: absolute;
				left: 143px;
				bottom: 150px;
				transform-origin: bottom;
				/* transform: rotate(30deg); */
			}
			#m{
				width: 10px;
				height: 100px;
				background-color: #9a5f3a;
				position: absolute;
				left: 145px;
				bottom: 150px;
				transform-origin: bottom;
				transform: rotate(60deg);
			}
			#sec{
				width: 4px;
				height: 120px;
				background-color: brown;
				position: absolute;
				left: 148px;
				bottom: 150px;
				transform-origin: bottom;
				transform: rotate(30deg);
			}
			#yuan{
				width: 30px;
				height: 30px;
				border-radius:50%;
				background-color: black;
				position: absolute;
				left: 135px;
				bottom: 135px;
			}
			
			/* 方框 */
			.box1{
				width: 300px;
				height: 80px;
				background-color: #637c8a;
				margin: 0px auto;
			}
			.show{
				position: relative;
				top: 8px;
				left: 50px;
			}
		</style>
	</head>
	<body>
		<div class="box1">
			<span class="show" id="show" style="font-size: 50px;"></span>
		</div>
		<div class="box">
			<div class="kd">
				<span><i>1</i></span>
				<span><i>2</i></span>
				<span><i>3</i></span>
				<span><i>4</i></span>
				<span><i>5</i></span>
				<span><i>6</i></span>
				<span><i>7</i></span>
				<span><i>8</i></span>
				<span><i>9</i></span>
				<span><i>10</i></span>
				<span><i>11</i></span>
				<span><i>12</i></span>
				
				<div id="h"></div>
				<div id="m"></div>
				<div id="sec"></div>
				<div id="yuan"></div>
			</div>
		</div>
		<script type="text/javascript">
			//获取指针
			var s = document.getElementById("sec");
			var m = document.getElementById("m");
			var h = document.getElementById("h");
			
			function times(){
				//获取时间
				var date = new Date()
				var hours = date.getHours()
				var min = date.getMinutes()
				var sec = date.getSeconds()
				
				// console.log(hours+" "+min+" "+sec)
				//计算每一秒走的度数
				var deg_s = sec*6;
				var deg_m = (min*60+sec)/10;
				var deg_h = (hours*3600+min*60+sec)/(3600*12)*360;
				
				s.style.transform = "rotate("+deg_s+"deg)"
				m.style.transform = "rotate("+deg_m+"deg)"
				h.style.transform = "rotate("+deg_h+"deg)"
			}
			times()
			setInterval(times,1000)
			
			function time(){
				//获取时间
				var date = new Date()
				var hours = date.getHours()
				var min = date.getMinutes()
				var sec = date.getSeconds()
				
				document.getElementById("show").innerHTML = hours+":"+min+":"+sec
			}
			// time()
			setInterval(time,1000)
		</script>
	</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值