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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
jQuery css() 方法动态修改CSS属性
Sep 25 Javascript
如何使用headjs来管理和异步加载js
Nov 29 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP 危险函数全解析
2009/09/09 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
JS+DIV实现拖动效果
2020/02/11 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
python 多线程实现检测服务器在线情况
2015/11/25 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python人民币小写转大写辅助工具
2018/06/20 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
如何解决python多种版本冲突问题
2020/10/13 Python
经典c++面试题二
2015/08/14 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
物业电工岗位职责
2013/11/20 职场文书
初中家长寄语
2014/04/02 职场文书
心理健康日活动总结
2014/05/08 职场文书
质量承诺书格式
2014/05/20 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
vscode内网访问服务器的方法
2022/06/28 Servers