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 相关文章推荐
基于JQuery的多标签实现代码
Sep 19 Javascript
javaScript如何生成xmlhttp
Dec 16 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
JS重载实现方法分析
Dec 16 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
基于Vue中点击组件外关闭组件的实现方法
Mar 06 Javascript
js中如何完美的解析数据
Mar 18 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 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中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
php 可变函数使用小结
2018/06/12 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
PHP统计代码行数的小代码
2019/09/19 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
学习十八大精神心得体会
2013/12/31 职场文书
中国好声音华少广告词
2014/03/17 职场文书
教师产假请假条范文
2014/04/10 职场文书
体育教师个人工作总结
2015/02/09 职场文书
学习与创新自我评价
2015/03/09 职场文书
索尼ICF-5900W收音机测评
2022/04/24 无线电