JavaScript Canvas编写炫彩的网页时钟


Posted in Javascript onOctober 16, 2019

本文实例为大家分享了JavaScript Canvas编写炫彩网页时钟的具体代码,供大家参考,具体内容如下

只是利用了Canvas制作的。

示意图如下:

JavaScript Canvas编写炫彩的网页时钟

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv = "Content-Type" content = "text/html"; charsert = "utf-8" />
 <title> 网页时钟 </title>
</head>
<body>
 <h2> Web时钟 </h2>
 <canvas id = "hello" width = "400" height = "400"
 style = "border:1px solid black"> </canvas>
 <script languagetype = "text/javascript">
 var myCavas = document.getElementById('hello');
 var c = myCavas.getContext('2d');
 function clock() {
  c.clearRect(0, 0, 400, 400);
  //获取当前时间
  var data = new Date();
  //获取秒
  var sec = data.getSeconds();
  //获取分钟
  var min = data.getMinutes();
  //获取小时
  var hour = data.getHours();
  c.save();
  c.translate(200, 200);
  c.rotate(-Math.PI/2);
  //分针刻度线
  for (var i = 0; i < 60; i++) { //画60个刻度线
  c.beginPath();
  c.strokeStyle = "yellowgreen";
  c.lineWidth = 5;
  c.moveTo(117, 0);
  c.lineTo(120, 0);
  c.stroke();
  //每6deg画一个分钟刻度线
  c.rotate(Math.PI/30);
  c.closePath();
  }
  //时钟刻度线
  for (var i = 0; i < 12; i++) { //画60个刻度线
  c.beginPath();
  c.strokeStyle = "green";
  c.lineWidth = 8;
  c.moveTo(100, 0);
  c.lineTo(120, 0);
  c.stroke();
  //每6deg画一个分钟刻度线
  c.rotate(Math.PI/6);
  c.closePath();
  }
  //外表盘
  c.beginPath();
  c.strokeStyle = "pink";
  c.arc(0, 0, 145, 0, Math.PI*2);
  c.lineWidth = 12;
  c.stroke();
  c.closePath();
  //画时针
  hour = hour > 12 ? hour-12 : hour;
  //console.log(hour);
  c.beginPath();
  c.save();
  //设置旋转角度,参数是弧度,角度0-360 弧度角度*Math.PI/180
  c.rotate(Math.PI/6*hour + Math.PI/6*min/60 + Math.PI/6*sec/3600);
  c.strokeStyle = "yellowgreen";
  c.lineWidth = 4;
  c.moveTo(-20, 0);
  c.lineTo(50, 0);
  c.stroke();
  c.restore();
  c.closePath();
  //画分针
  //console.log(min);
  c.beginPath();
  c.save();
  c.rotate(Math.PI/30*min + Math.PI/30*sec/60);
  c.strokeStyle = "springgreen";
  c.lineWidth = 3;
  c.moveTo(-30, 0);
  c.lineTo(70, 0);
  c.stroke();
  c.restore();
  c.closePath();
  //画秒针
  c.beginPath();
  c.save();
  c.rotate(Math.PI/30*sec);
  c.strokeStyle = "red";
  c.lineWidth = 2;
  c.moveTo(-40, 0);
  c.lineTo(120, 0);
  c.stroke();
  c.restore();
  c.closePath();
  c.restore();
 }
 clock();
 setInterval(clock, 1000);
 </script>
</body>
</html>

更多JavaScript时钟特效点击查看:JavaScript时钟特效专题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
加载jQuery后$冲突的解决办法
Jul 09 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
Oct 09 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
Mar 04 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
解决vue打包后刷新页面报错:Unexpected token
Aug 27 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 #Javascript
javascript实现点亮灯泡特效示例
Oct 15 #Javascript
vue-cli 为项目设置别名的方法
Oct 15 #Javascript
Vue 实现输入框新增搜索历史记录功能
Oct 15 #Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 #Javascript
微信小程序如何实现五星评价功能
Oct 15 #Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 #Javascript
You might like
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
js实现无缝滚动图
2017/02/22 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
python频繁写入文件时提速的方法
2019/06/26 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
NET程序员上机面试题
2015/05/23 面试题
销售人员中英文自荐信
2013/09/22 职场文书
教育局长自荐信范文
2013/12/22 职场文书
音乐教师求职信
2014/06/28 职场文书
医院见习报告范文
2014/11/03 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
就业推荐表导师评语
2014/12/31 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js