webjs--两种时钟
来源:互联网 发布:米特网域名怎么解析 编辑:程序博客网 时间:2024/06/17 07:18
1:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>canvas clock</title><style type="text/css"> div{text-align:center;margin-top:250px;}</style></head><body> <div> <canvas id="clock" width="300" height="300">您的浏览器不支持canvas</canvas> </div> <script type="text/javascript"> window.onload=function(){ var c=document.getElementById("clock"); var ctx=c.getContext('2d'); var width=ctx.canvas.width; var height=ctx.canvas.width; var r=width/2; var rem=width/200; function drawBackground(){ ctx.save(); ctx.translate(r,r); ctx.beginPath(); ctx.lineWidth=10*rem; ctx.arc(0,0,r-ctx.lineWidth/2,0,2*Math.PI); ctx.stroke(); var hourNumbers=[3,4,5,6,7,8,9,10,11,12,1,2]; ctx.font=18*rem+"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*rem); var y=Math.sin(rad)*(r-30*rem); ctx.fillText(number,x,y); }) for(var i=0;i<60;i++){ var rad=2*Math.PI/60*i; var x=Math.cos(rad)*(r-15*rem); var y=Math.sin(rad)*(r-15*rem); ctx.beginPath(); if(i%5==0){ ctx.fillStyle='#000'; ctx.arc(x,y,2*rem,0,2*Math.PI) } else{ ctx.fillStyle='#ccc'; ctx.arc(x,y,2*rem,0,2*Math.PI) } ctx.fill(); } } function drawHour(hour,minute){ ctx.save(); ctx.beginPath(); var rad=2*Math.PI/12*hour; var mrad=2*Math.PI/12/60*minute; ctx.rotate(rad+mrad); ctx.lineWidth=6*rem; ctx.lineCap='round'; ctx.moveTo(0,10*rem); 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*rem; ctx.lineCap='round'; ctx.moveTo(0,10*rem); ctx.lineTo(0,-r+35*rem); ctx.stroke(); ctx.restore() } function drawSecond(second){ ctx.save(); ctx.beginPath(); ctx.fillStyle='#c14543'; var rad=2*Math.PI/60*second; ctx.rotate(rad); ctx.moveTo(-2*rem,20*rem); ctx.lineTo(2*rem,20*rem); ctx.lineTo(1,-r+18*rem); ctx.lineTo(-1,-r+18*rem); ctx.fill(); ctx.restore() } function drawDot(){ ctx.beginPath(); ctx.fillStyle='#fff'; ctx.arc(0,0,3*rem,0,2*Math.PI); ctx.fill(); } function draw(){ ctx.clearRect(0,0,width,height) var now=new Date(); var hour=now.getHours(); var minute=now.getMinutes(); var second=now.getSeconds(); drawBackground(); drawHour(hour,minute); drawMinute(minute); drawSecond(second); drawDot(); ctx.restore(); } draw(); setInterval(draw,1000) } </script></body></html>
2:
<!DOCTYPE html><html> <head> <title>Js版带表盘的时钟</title> <meta charset="utf-8"/> <style type="text/css">#clock{width:100px; height:100px;border-radius:50%;border:2px solid black;position:relative;}#s{width:2px; height:55px;position:absolute; top:5px; left:49px;background-color:red;transform-origin:50% 45px;}#m{width:4px; height:50px;position:absolute; top:10px; left:48px;background-color:black;transform-origin:50% 40px;}#h{width:6px; height:45px;position:absolute; top:15px; left:47px;background-color:black;transform-origin:50% 35px;}div[id^="a"]{position:absolute;font-size:.5em; text-align:center;width:7px; height:5px;top:0; left: 46.5px;transform-origin:50% 50px;}#a4,#a8{font-size:.4em; font-weight:bold}#a1{transform:rotate(30deg)}#a2{transform:rotate(60deg)}#a3{transform:rotate(90deg)}#a4{transform:rotate(120deg)}#a5{transform:rotate(150deg)}#a6{transform:rotate(180deg)}#a7{transform:rotate(210deg)}#a8{transform:rotate(240deg)}#a9{transform:rotate(270deg)}#a10{transform:rotate(300deg)}#a11{transform:rotate(330deg)}</style> </head> <body> <div id="clock"><div id="h"></div><div id="m"></div><div id="s"></div><div id="a1">I</div><div id="a2">II</div><div id="a3">III</div><div id="a4">IIII</div><div id="a5">V</div><div id="a6">VI</div><div id="a7">VII</div><div id="a8">VIII</div><div id="a9">IX</div><div id="a10">X</div><div id="a11">XI</div><div id="a12">XII</div> </div><script>//找到id为h的div,保存在divH中//找到id为m的div,保存在divM中//找到id为s的div,保存在divS中var divH=document.getElementById("h");var divM=document.getElementById("m");var divS=document.getElementById("s");function task(){var now=new Date();//获得当前时间nowvar s=now.getSeconds();//获得当前的svar m=now.getMinutes();//获得当前的mvar h=now.getHours();//获得当前的hh>=12&&(h-=12);//如果h>=12,就改为h-12var sDeg=s/60*360;//计算s的角度sDegvar mDeg=(m*60+s)/3600*360;//计算m的角度mDeg//计算h的角度hDegvar hDeg=(h*3600+m*60+s)/(3600*12)*360;//设置divS的transform属性为rotate(sDegdeg)//设置divM的transform属性为rotate(mDegdeg)//设置divH的transform属性为rotate(hDegdeg)divS.style.transform="rotate("+sDeg+"deg)";divM.style.transform="rotate("+mDeg+"deg)";divH.style.transform="rotate("+hDeg+"deg)";}task();setInterval(task,1000);</script> </body></html>
阅读全文
0 0
- webjs--两种时钟
- flex两种方式画出一个动态时钟
- windows对象提供的两种定时器的应用,时钟
- HTMl5与CSS3两种制作时钟的方法
- webjs -- jsonp的原理
- webjs--hash数组去重
- 源同步信号跨时钟域采集的两种方法
- 51单片机之时钟(C语言和汇编两种方式实现)
- 源同步信号跨时钟域采集的两种方法
- 用非门74HC04与无源晶振产生时钟信号的两种电路
- webjs--全选和全不选的复选框
- webjs--获取上传文件的进度
- webjs--实现多图片的上传
- 时钟
- 时钟
- 时钟
- 时钟
- 时钟
- DQL、DML、DDL、DCL的概念与区别
- LINQ_to_SQL语法及实例大全
- 基于Spark的移动用户主要活动地点的挖掘算法实现以及JavaEE技术整合
- leetcode——15.3Sum
- 计算广告课程小结
- webjs--两种时钟
- ubuntu14.04 apt-get由于源的问题导致无法下载问题解决
- popupWindow的封装使用
- centos修改环境变量
- 迅为I.MX6Q开发板Ubuntu系统的烧写方法
- java中关于冒泡排序
- jquery和js中对DOM元素的操作
- 使用pickerview实现(省市区)地址选择器的三级联动
- 计算广告学习笔记1.1 广告的基础知识-广告的目的