一个简易时钟效果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 相关文章推荐
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
jquery获取iframe中的dom对象(两种方法)
Jul 02 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
详细解密jsonp跨域请求
Apr 15 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
移动开发之自适应手机屏幕宽度
Nov 23 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
用vue和node写的简易购物车实现
Apr 25 Javascript
JavaScript的级联函数用法简单示例【链式调用】
Mar 26 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
jQuery实现日历效果
2020/09/11 jQuery
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
django迁移文件migrations的实现
2020/03/31 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
函授大专自我鉴定
2013/11/01 职场文书
十佳教师事迹材料
2014/01/11 职场文书
高中军训第一天感言
2014/03/06 职场文书
银行进社区活动总结
2014/07/07 职场文书
七一建党日演讲稿
2014/09/05 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android