一个简易时钟效果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 相关文章推荐
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 Javascript
JavaScript中的变量声明早于赋值分析
Mar 01 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
Dec 09 Javascript
js转义字符介绍
Nov 05 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
Jun 23 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 Javascript
Vue实现简单分页器
Dec 29 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 Javascript
JS使用setInterval计时器实现挑战10秒
Nov 08 Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 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
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
教师师德演讲稿
2014/05/06 职场文书
企业领导对照检查材料
2014/08/20 职场文书
老人节标语大全
2014/10/08 职场文书
复试通知单模板
2015/04/24 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
民事起诉状范文
2015/05/19 职场文书
销售口号霸气押韵
2015/12/24 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL