纯js+html+css实现模拟时钟

前几天没事写的个模拟时钟,代码仅供小白参考,大神请自动绕过。

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>模拟时钟</title>
  6     <style>
  7         body {
  8             margin: 0;
  9             padding: 0;
 10         }
 11
 12         #blockDial {
 13             width: 200px;
 14             height: 200px;
 15             border: 2px solid black;
 16             border-radius: 50%;
 17             position: relative;
 18             background-color: coral;
 19         }
 20
 21         .heart {
 22             width: 10px;
 23             height: 10px;
 24             background-color: black;
 25             margin: 95px auto;
 26             border-radius: 50%;
 27         }
 28
 29         .blockwise {
 30             width: 2px;
 31             height: 80px;
 32             background-color: black;
 33             position: absolute;
 34             left: 99px;
 35             top: 20px;
 36             z-index: 10;
 37         }
 38         .secondHand{
 39             width: 2px;
 40             height: 50px;
 41             background-color: black;
 42             position: absolute;
 43             left: 99px;
 44             top: 50px;
 45             z-index: 10;
 46         }
 47         .minuteHand{
 48             width: 2px;
 49             height: 65px;
 50             background-color: black;
 51             position: absolute;
 52             left: 99px;
 53             top: 35px;
 54             z-index: 10;
 55         }
 56         #currentTime{
 57             width: 120px;
 58             height: 30px;
 59             border: 1px solid black;
 60             margin: 10px 40px;
 61             text-align: center;
 62             line-height: 30px;
 63         }
 64         .num{
 65             font-size: 24px;
 66             color: aqua;
 67             position: absolute;
 68         }
 69         .num3{
 70             top:42%;
 71             left: 90%;
 72         }
 73         .num6{
 74             top:86%;
 75             left: 46%;
 76         }
 77         .num9{
 78             top:42%;
 79             left: 0;
 80         }
 81         .num12{
 82             top:0;
 83             left: 44%;
 84         }
 85     </style>
 86 </head>
 87 <body>
 88 <div id="blockDial">
 89     <div class="heart"></div>
 90     <div class="blockwise"></div>
 91     <div class="secondHand"></div>
 92     <div class="minuteHand"></div>
 93     <div class="num num3">3</div>
 94     <div class="num num6">6</div>
 95     <div class="num num9">9</div>
 96     <div class="num num12">12</div>
 97 </div>
 98 <div id="currentTime"></div>
 99 <script src="main.js"></script>
100 </body>
101 </html>

html

 1 (function () {
 2
 3     var blockwise = document.querySelector("#blockDial .blockwise");
 4     var secondHand = document.querySelector("#blockDial .secondHand");
 5     var minuteHand = document.querySelector("#blockDial .minuteHand");
 6     var currentTime = document.querySelector("#currentTime");
 7
 8     function formate(num) {
 9         return num>=10? num:"0"+num;
10     }
11
12     setInterval(function () {
13         var time = new Date();
14         currentTime.innerHTML = formate(time.getHours()) + ":" +
15             formate(time.getMinutes()) + ":" + formate(time.getSeconds());
16
17         var angleSeconds = time.getSeconds() * 6;
18         rotateDiv(secondHand, angleSeconds);
19
20         var angleHours = time.getHours() * 30;
21         rotateDiv(blockwise, angleHours);
22
23         var angleMinute = time.getMinutes() * 6;
24         rotateDiv(minuteHand, angleMinute);
25     }, 1000);
26
27     function rotateDiv(target, angle) {
28         target.style.transform = "rotate(" + angle + "deg) ";
29         target.style.transformOrigin = "100% 100%";
30     }
31
32     document.body.addEventListener("click", function (event) {
33         console.log(event.pageX, event.pageY);
34     });
35 })();

js

吐槽:这代码水准已经是我那时候的最高水平了,╮(╯▽╰)╭

时间: 2024-10-06 10:21:45

纯js+html+css实现模拟时钟的相关文章

纯js全选、多选

使用纯js来写一个模拟购物车的全选和多选功能. 思路: 1.需要给每一个input设置点击事件 2.全选就是把所有的checkbox设置为true 3.取消一个不全选,就是判断是否全部的checkbox都被选了 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head&

JS模拟时钟

<html> <head> <title>js模拟时钟</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body onLoad="setInterval(setTimeSpan,1000);"> <span style="fon

纯js模拟 radio和checkbox控件

代码待优化,功能实现了,不兼容ie8以上, 相同name的radio可以实现切换的操作, 分享代码,共同学习进步 <!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <style> .radiobox, .checkbox { width: 10px; height: 10px; padding: 2px; borde

纯js和纯css+html制作的手风琴的效果

一:纯css+html的手风琴效果 这种用css写的手风琴比较简单,主要是应用到css中的,transition属性. 代码如下: <!DOCTYPE HTML> <html> <head> <style> body{background: url('bg.gif') repeat;} ul,li,p{margin: 0px;padding: 0px;list-style: none;} #div{width: 1180px;height: 405px;bo

纯js实现瀑布流布局及ajax动态新增数据

本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能. 缺点: 1. 程序不是响应式,不能实时调整页面宽度: 2. 程序中当新增ajax模拟数据图片后,是将整个页面的所有图片都重新定位一次. 3. 程序是等所有图片加载完成后再读取图片的尺寸,实际中肯定不能这样做. 4. 实际项目中,应该由后台程序给出图片尺寸值,在js代码中直接使用图片的width属性. 本程序思路: html结构: ? 1 2 3 4 5 6 7 8 9 10 1

纯js实现html转pdf

项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式.简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf.咋不上天呢--查了一下,能够实现html转pdf的方法还是挺多的,大概有以下几种:1.大部分浏览器就有这个功能.然而我们客户要的可不是这个,人家要的是能够在系统中主动触发的导出为pdf功能,所以这种方案pass.2.利用第三方工具.我找到了一种利用wkhtmltopdf这种工具来导出的方案,自己在我们的项目中试了一下,效

[分享黑科技]纯js突破localstorage存储上线,远程抓取图片,并转码base64保存本地,最终实现整个网站所有静态资源离线到用户手机效果却不依赖浏览器的缓存机制,单页应用最新黑科技

好久没有写博客了,想到2年前答应要放出源代码的也没放出来,最近终于有空先把纯js实现无限空间大小的本地存储的功能开源了,项目地址https://github.com/xueduany/localstore,demo见http://xueduany.github.io/localstore/,下面给大家简单说说大概原理,具体细节和异常处理后面有机会在单独说 先说下突破本地localStorage的原理,官方原话是这么说的http://www.w3.org/TR/2013/PR-webstorage

2个方法通过字[符串参数]加载外部js和css文件

Java语言的异常处理机制可以去确保程序的健壮性,提高系统的可用率,但是Java API提供的异常都是比较低级的(这里的低级是指 " 低级别的 " 异常),只有开发人员才能看的懂,才明白发生了什么问题.而对于终端用户来说,这些异常基本上就是天书,与业务无关,是纯计算机语言的描述,那该怎么办?这就需要我们对异常进行封装了. 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了最近神经网络研究的一个热点,本人最近也学习

纯JS文本比较工具

前段时间由于工作需要写了一个纯JS文本比较工具 在这里与大家分享下 算法有待优化,还希望大家多多指教 先上效果图: 奉上源码(把源码保存为html格式的文件就可以直接运行了): 1 <!doctype html> 2 <html> 3 <head> 4 <title>文本比较工具</title> 5 <style type="text/css"> 6 *{padding:0px;margin:0px;} 7 htm