一个简易时钟效果js实现代码


Posted in Javascript onMarch 25, 2020

本文实例为大家分享了js时钟特效 的具体代码,供大家参考,具体内容如下

一个简易时钟效果js实现代码

js代码

var canvas = document.getElementById("clock");
var clock = canvas.getContext("2d");
 
function zhong() {
 clock.save();
 //开始画外层圆
 clock.translate(200, 200);
 clock.strokeStyle = 'black';
 clock.lineWidth = 3;
 clock.beginPath();
 clock.arc(0, 0, 195, 0, 2 * Math.PI);
 clock.stroke();

 //时钟上的数字
 var shuzi = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2];
 clock.font = "30px Arial";
 clock.textAlign = "center";
 clock.textBaseline = "middle";
 shuzi.forEach(function(number, i) {
 var rad = 2 * Math.PI / 12 * i;
 var x = Math.cos(rad) * 180;
 var y = Math.sin(rad) * 180;
 clock.fillText(number, x, y);
 });

 // 小圆点

 for(j = 0; j < 60; j++) {
 var h = 2 * Math.PI / 60 * j;
 var m = Math.cos(h) * 180;
 var n = Math.sin(h) * 180;
 clock.fillStyle = 'black';
 clock.beginPath();
 if(j % 5 === 0) {
 continue;
 }
 clock.arc(m, n, 3, 0, 2 * Math.PI);
 clock.fill();
 }
}
function drawHour(hour,min) {
 clock.save();
 var rad = 2 * Math.PI / 12 * hour;
 var red = 2 *Math.PI/12/60*min;
 clock.rotate(rad+red);
 clock.lineWidth = 10;
 clock.lineCap = "round";
 clock.beginPath();
 clock.moveTo(0, 5);
 clock.lineTo(0, -100);
 clock.stroke();
 clock.restore();
}

function drawmin(min) {
 clock.save();
 var rad = 2 * Math.PI / 60 * min;
 clock.rotate(rad);
 clock.lineWidth = 5;
 clock.lineCap = "round";
 clock.beginPath();
 clock.moveTo(0, 10);
 clock.lineTo(0, -150);
 clock.stroke();
 clock.restore();
}

function drawsec(sec) {
 clock.save();
 var rad = 2 * Math.PI / 60 * sec;
 clock.rotate(rad);
 clock.lineWidth = 2;
 clock.lineCap = "round";
 clock.strokeStyle = "red";
 clock.beginPath();
 clock.moveTo(0, 10);
 clock.lineTo(0, -180);
 clock.stroke();
 clock.restore();
}

function dian() {
 clock.fillStyle = "white";
 clock.beginPath();
 clock.arc(0, 0, 2, 0, 2 * Math.PI);
 clock.fill();
}

function xuanzhuan() {
 clock.clearRect(0,0,400,400);
 zhong();
 var now = new Date();
 var hour = now.getHours();
 var min = now.getMinutes();
 var sec = now.getSeconds();
 drawHour(hour,min);
 drawmin(min);
 drawsec(sec);
 dian();
 clock.restore();
}
xuanzhuan();

setInterval(xuanzhuan, 1000);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
几个高效,简洁的字符处理函数
Apr 12 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
Sep 22 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
关于Vue在ie10下空白页的debug小结
May 02 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
Vue 组件参数校验与非props特性的方法
Feb 12 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
koa中间件核心(koa-compose)源码解读分析
Jun 15 Javascript
微信小程序实现页面跳转传值的方法
Oct 12 #Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 #Javascript
微信小程序 动画的简单实例
Oct 12 #Javascript
node通过npm写一个cli命令行工具
Oct 12 #Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 #Javascript
AngularJS实现表单验证功能详解
Oct 12 #Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 #Javascript
You might like
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
javascript 获取图片颜色
2009/04/05 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Python ellipsis 的用法详解
2020/11/20 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
EJB面试题
2015/07/28 面试题
文秘专业自荐信
2013/10/14 职场文书
销售总监岗位职责
2014/01/04 职场文书
医药营销个人求职信
2014/04/12 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
工作失误检讨书范文
2015/01/26 职场文书
毕业生登记表班级意见
2015/06/05 职场文书