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操作下拉列表、文本框、复选框、单选框集合(收藏)
Jan 08 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
关于js里的this关键字的理解
Aug 17 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
javascript的 {} 语句块详解
Feb 27 Javascript
JavaScript是如何实现继承的(六种方式)
Mar 31 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
使用vue如何构建一个自动建站项目
Feb 05 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 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图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python导入模块时遇到的错误分析
2017/08/30 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
django 类视图的使用方法详解
2019/07/24 Python
python内置模块collections知识点总结
2019/12/19 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
现金出纳岗位职责
2014/03/15 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
使用Python开发冰球小游戏
2022/04/30 Python