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中定义对象类别
Dec 22 Javascript
HTML中不支持静态Expando的元素的问题
Mar 08 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
JS使用正则表达式除去字符串中重复字符的方法
Nov 05 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
vue2.0实现分页组件的实例代码
Jun 22 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
基于jQuery实现挂号平台首页源码
Jan 06 jQuery
在Vue中使用HOC模式的实现
Aug 23 Javascript
动态规划之使用备忘录来改进Javascript函数
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
E路文章系统PHP
2006/12/11 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
大学毕业生工作的自我评价
2013/10/01 职场文书
运动会演讲稿100字
2014/08/25 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
会计专业自荐信范文
2019/05/22 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python