一个简易时钟效果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的Javascript document输出的方法
Dec 02 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
功能强大的Bootstrap效果展示(二)
Aug 03 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
highcharts 在angular中的使用示例代码
Sep 20 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
微信小程序开发之路由切换页面重定向问题
Sep 18 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
jQuery 筛选器简单操作示例
Oct 02 jQuery
javascript 数组精简技巧小结
Feb 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
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
python发送邮件实例分享
2017/07/28 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
tensorflow之并行读入数据详解
2020/02/05 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
python suds访问webservice服务实现
2020/06/26 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
What is EJB
2016/07/22 面试题
创先争优个人承诺书
2014/08/30 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
入伍通知书
2015/04/23 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
Vue如何清空对象
2022/03/03 Vue.js