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 相关文章推荐
Mozilla中显示textarea中选择的文字
Sep 07 Javascript
Maps Javascript
Jan 22 Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
Dec 06 Javascript
JS实现可改变列宽的table实例
Jul 02 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
基于jQuery实现点击列表加载更多效果
May 31 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
May 14 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 Javascript
解决vue中provide inject的响应式监听
Apr 19 Vue.js
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笔记之:php数组相关函数的使用
2013/04/26 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
一页面多XMLHttpRequest对象
2007/01/22 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
家教广告词
2014/03/19 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
暑假安全保证书
2015/02/28 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
行政申诉状范文
2015/05/20 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
安全教育培训心得体会
2016/01/15 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python