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 相关文章推荐
javascript firefox兼容ie的dom方法脚本
May 18 Javascript
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 Javascript
js实现在网页上简单显示时间的方法
Mar 02 Javascript
高效Web开发的10个jQuery代码片段
Jul 22 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
Javascript删除数组里的某个元素
Feb 28 Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 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
隐性调用php程序的方法
2009/03/09 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
php实现复制移动文件的方法
2015/07/29 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
vue.js中$set与数组更新方法
2018/03/08 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
vue项目实现图片上传功能
2019/12/23 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
用Python实现BP神经网络(附代码)
2019/07/10 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
学校火灾防控方案
2014/06/09 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS