一个简易时钟效果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 变量类型转换常用函数与代码[比较全]
Dec 01 Javascript
网页中返回顶部代码(多种方法)另附注释说明
Apr 24 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
js判断文件格式及大小的简单实例(必看)
Oct 11 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
JavaScript html5 canvas实现图片上画超链接
Oct 20 Javascript
前后端如何实现登录token拦截校验详解
Sep 03 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
create-react-app中添加less支持的实现
Nov 15 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 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下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php文件操作实例代码
2012/05/10 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
javascript新手语法小结
2008/06/15 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
Python中的super用法详解
2015/05/28 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
党支部书记先进事迹
2014/01/17 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
远程教育培训心得体会
2016/01/09 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书