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 相关文章推荐
一个JS翻页效果
Jul 23 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
jquery获取form表单input元素值的简单实例
May 30 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
js实现放大镜特效
May 18 Javascript
BootStrap给table表格的每一行添加一个按钮事件
Sep 07 Javascript
Vue使用mixins实现压缩图片代码
Mar 14 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
js中offset,client , scroll 三大元素知识点总结
Sep 11 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
牡丹941资料
2021/03/01 无线电
phpBB BBcode处理的漏洞
2006/10/09 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
解决Python传递中文参数的问题
2015/08/04 Python
Python随机数random模块使用指南
2016/09/09 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python求最大连续子数组的和
2018/07/07 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
String和StringBuffer的区别
2015/08/13 面试题
导师推荐信范文
2014/05/09 职场文书
校园演讲稿汇总
2014/05/21 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
五年级学生期末评语
2014/12/26 职场文书
房屋质量投诉书
2015/07/02 职场文书