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 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
JQ获取动态加载的图片大小的正确方法分享
Nov 08 Javascript
js如何获取兄弟、父类等节点
Jan 06 Javascript
angularjs基础教程
Dec 25 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
Jul 15 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 Javascript
Javascript读写cookie的实例源码
Mar 16 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 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数据库操作面向对象的优点
2006/10/09 PHP
ajax php 实现写入数据库
2009/09/02 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
简单快速的实现js计算器功能
2017/08/17 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
实例解析Python中的__new__特殊方法
2016/06/02 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
python制作websocket服务器实例分享
2016/11/20 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python实现TF-IDF算法解析
2018/01/02 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
先进工作者申报材料
2014/12/23 职场文书
小学生作文批改评语
2014/12/25 职场文书
元宵节寄语大全
2015/02/27 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers