H5画的圆钟表

2024-02-23 06:38
文章标签 h5 钟表

本文主要是介绍H5画的圆钟表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不经意间看到一个博客上有个钟表,觉得很好看,然后搜了下找到一篇文章,运行了下,很不错呢

原文:https://blog.csdn.net/u012454898/article/details/52888832

贴出来

html页面

<!DOCTYPE html>
<html>
<body>
<div>
<!-- width和height一样--><canvas id="clock" width="400px" height="400px"></canvas>
</div>
<div>aaa</div>
<script src="round-clock.js"></script>
</body></html>

js

//获取画布var doc = document.getElementById("clock");//所有的操作都在上下文中,所以要获取上下文,是2d的//alert(dom);
var ctx =doc.getContext("2d");
var width = ctx.canvas.width;
var height= ctx.canvas.height;
var k = width/200;
var r = width/2;//写圆的半径
//重新映射画布上的原点,原始的原点是canvas中的左上角,下面语句是把(r,r)当成原点
ctx.translate(r,r);
function  drawBackground(){ctx.save();ctx.strokeStyle="black";ctx.fillStyle="black"//重置当前路径,如果不重置,则会从上次话的路径开始ctx.beginPath();//设置划线的宽度ctx.lineWidth=10*k;//参数依次是 前两个圆心的 x,y坐标。圆的半径,起始角,终止角(都是以弧度来计算的),顺时针还是逆时针(false顺,true逆)ctx.arc(0,0,r-5*k,0,2*Math.PI,false);//stroke() 方法会实际地绘制出方法定义的路径。默认颜色是黑色。ctx.stroke();//    画数字图var hourNumbers =[3,4,5,6,7,8,9,10,11,12,1,2];//字体样式和大小ctx.font=18*k+"px Arial";//字体的水平位置,默认是居左ctx.textAlign="center";//字体的垂直居中ctx.textBaseline ="middle";hourNumbers.forEach(function(number,i){//先是计算所要画的位置var rad = 2*Math.PI/12*i;var x = Math.cos(rad)*(r-30*k);var y = Math.sin(rad)*(r-30*k);//用来画文本ctx.fillText(number,x,y);});ctx.lineWidth=1;for(var i=0;i<60;i++){var rad =2*Math.PI/60*i;var x = Math.cos(rad)*(r-18*k);var y = Math.sin(rad)*(r-18*k);//    通过画实心圆来画点ctx.beginPath();if(i%5==0){ctx.fillStyle="black";ctx.arc(x,y,2*k,0,2*Math.PI,false);}else{ctx.fillStyle="#ccc";ctx.arc(x,y,2*k,0,2*Math.PI,false);}ctx.fill();ctx.strokeStyle="white"ctx.stroke();}}
function  drawHour(hour,minute){ctx.save();ctx.strokeStyle="black";ctx.beginPath();var rad = 2*Math.PI/12*hour;var mrad = 2*Math.PI/12/60 *minute;ctx.rotate(rad+mrad);ctx.lineWidth=6*k;ctx.lineCap="round";//移动画直线的起始点位置相对原点的移动ctx.moveTo(0,10*k);//目标位置ctx.lineTo(0,-r/2);ctx.stroke();ctx.restore();
}
function  drawMinute(minute){ctx.save();ctx.beginPath();var rad = 2*Math.PI/60*minute;ctx.rotate(rad);ctx.lineWidth=3*k;ctx.lineCap="round";ctx.moveTo(0,10*k);ctx.lineTo(0,-r+30*k);ctx.strokeStyle="black";ctx.stroke();ctx.restore();
}
function  drawSecond(second){ctx.save();ctx.beginPath();var rad = 2*Math.PI/60*second;ctx.rotate(rad);ctx.moveTo(-2*k,20*k);ctx.lineTo(2*k,20*k);ctx.lineTo(1*k,-r+18*k);ctx.lineTo(-1*k,-r+18*k);ctx.lineCap="round";ctx.moveTo(0,10*k);ctx.lineTo(0,-r+30*k);ctx.fillStyle="orange";ctx.fill();ctx.stroke();ctx.restore();
}
function drawDot(){ctx.save();ctx.beginPath();ctx.fillStyle="white";ctx.arc(0,0,3*k,0,2*Math.PI,false);ctx.fill();ctx.stroke();ctx.restore();
}
function show(){ctx.clearRect(-r,-r,width,height);var now = new Date();var houre = now.getHours();var minute = now.getMinutes();var second = now.getSeconds();drawBackground();drawHour(houre,minute);drawMinute(minute);drawSecond(second);drawDot();ctx.restore();}
show();
setInterval(show,1000);

 

这篇关于H5画的圆钟表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737810

相关文章

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

H5漂流瓶社交系统源码

一个非常有创意的H5漂流瓶社交系统源码,带完整前端h5和后台管理系统。 环境:Nginx 1.20.1-MySQL 5.6.50-PHP-7.3 代码下载

ios免签H5

1、windows下载mobileconfig文件制作工具,可在csdn搜索iPhone_Mobileconfig_Tool下载安装;IOS 从APP Store 下载Apple Configurator 2 2、用申请的域名SSL证书给mobieconfig文件签名,最好下载Apache证书,里面包含 AE86211.crt 服务器端用于签名的证书 AE86211.key 服务器端用于签

android 的webView加载h5,和h5的交互(java和JavaScript的交互)

Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和Javascript代码的相互调用。(通俗点说就是,点击那个Web页面的按钮啥的,可以传到原生app;或者原生app调用Web页面的js方法) 如何实现 实现Java和js交互十分便捷。通常只需要以下几步。 WebView

webview之加载H5界面无法调用手机本地图库

webview加载H5页面,如果H5界面需要调用手机的本地图库 首先在此祝各位大佬远离BUG 比如我们在开发中会遇到这样的场景,需要加载一个H5界面,这个界面里面可能有用户上传头像这个功能,但是当你怎么点击上传图片的时候它都无响应。但是你把这个H5用手机浏览器打开,会发现他可以正常调用手机本地的图库,对于此类问题,我分两种情况讲Acvtivity里面用webview去加载 H5界面。fragm

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动:平台设有专门的直播间,允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流:异性用户可以发起语音或视频通话,以增进了解和交流。群组聊天:用户能够创建群聊,邀请自己关注的异性朋友加入,以便进行多人在线交流。虚拟礼品赠送:平台提供多样化的虚拟礼物,不同礼物有不同的价值,用户可以用来表达好感或支持。私人消息:异性用户之间可以互相发送私人信息,不过平台为了维护用户体验,对

2024霸王餐小程序cps,h5公众号小程序开源版系统搭建开发,外卖霸王餐小程序系统源码

目录 前言: 一、霸王餐小程序的操作是怎么样的? 二、霸王餐系统后台 三、怎么搭建部署? 前言: 霸王餐项目基于美团和饿了么平台开发的小程序。 一、霸王餐小程序的操作是怎么样的? 1、进入小程序后选择自己要下单的店铺,点击去抢单,点击立即抢单。 2、输入平台外卖绑定的手机号,点击确认报名。按照步骤操作即可。 3、等待外卖送达后,完成评价即可。 二、霸王餐系统后台

uniapp+vue3实现双通道透明MP4播放支持小程序和h5

双通道透明MP4视频播放的截图 以下是合成后结果,二个合并在一起进行播放 下载资源,打开运行直接使用看到效果 https://download.csdn.net/download/qq_40039641/89715780

微信公众号h5网页-调用录音评测

一、全局引入jweixin-1.6.0.js微信能力插件; 二、初始化微信配置,开启音频相关能力; initWxConfig() {let url = window.location.href.split('#')[0]let data = { url: url }this.$http.get(this.$api.getTicket, { params: data }).then((res)

多用户B2B2C商城源码+短视频直播+APP+小程序+H5

店铺管理 店铺列表,新店铺审核,地址管理,服务管理,运费模版,品牌管理 订单监管 视频订单,拼团订单,评论管理,退款管理 装修商城 模版管理,页面管理,全局样式,链接管理,图标管理 客服服务 投诉管理,意见反顾 财务管理 资金账单,用户提现 阶梯拼团 拼团管理,商品管理 种草短视频 社交评论,直播回放,视频点播 内容管理 文章列表,分类管理 WX管理 菜单管理,资