用html5中的canvas写的时钟
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>时钟</title> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> var cxs; var canvas; $(document).ready(function(){ canvas=document.getElementById("canvas"); cxs=canvas.getContext(‘2d‘); }); function date(){ cxs.clearRect(0,0,500,500); var date=new Date(); var hour=date.getHours(); var min=date.getMinutes(); var sec=date.getSeconds(); cxs.save(); cxs.translate(30,25); //cxs.rotate(-10*Math.PI/180); var img =new Image(); img.src="${pageContext.request.contextPath }/image/7.png"; cxs.drawImage(img,0,0,1440,900); cxs.restore(); //表盘 cxs.strokeStyle="blue"; cxs.lineWidth=10; cxs.beginPath(); cxs.arc(250,250,200,0,360,false); cxs.closePath(); cxs.stroke(); cxs.beginPath(); cxs.font="30px Verdana"; var gradient=cxs.createLinearGradient(250,250,canvas.width,250); gradient.addColorStop("0","magenta"); gradient.addColorStop("0.5","blue"); gradient.addColorStop("1.0","red"); cxs.fillStyle=gradient; cxs.fillText("余超的设计",180,230); cxs.closePath(); //小时刻度 for(var i=0;i<12;i++){ cxs.save(); cxs.strokeStyle="#000"; cxs.translate(250,250); cxs.lineWidth=7; cxs.rotate(i*30*Math.PI/180); cxs.beginPath(); cxs.moveTo(0,-170); cxs.lineTo(0,-190); cxs.closePath(); cxs.stroke(); cxs.restore(); } //分刻度 for(var i=0;i<60;i++){ cxs.save(); cxs.strokeStyle="#000"; cxs.translate(250,250); cxs.lineWidth=5; cxs.rotate(i*6*Math.PI/180); cxs.beginPath(); cxs.moveTo(0,-180); cxs.lineTo(0,-190); cxs.closePath(); cxs.stroke(); cxs.restore(); } //时针 cxs.save(); cxs.translate(250,250); cxs.lineWidth=5; cxs.strokeStyle="#000"; hour=hour>12?hour-12:hour; hour+=min/60; cxs.rotate(hour*30*Math.PI/180); cxs.beginPath(); cxs.moveTo(0,10); cxs.lineTo(0,-110); cxs.closePath(); cxs.stroke(); cxs.restore(); //分针 cxs.save(); cxs.translate(250,250); cxs.lineWidth=6; cxs.strokeStyle="#000"; min+=sec/60; cxs.rotate(min*6*Math.PI/180); cxs.beginPath(); cxs.moveTo(0,15); cxs.lineTo(0,-140); cxs.closePath(); cxs.stroke(); cxs.restore(); //秒针 cxs.save(); cxs.translate(250,250); cxs.lineWidth=4; cxs.strokeStyle="red"; cxs.rotate(sec*6*Math.PI/180); cxs.beginPath(); cxs.moveTo(0,20); cxs.lineTo(0,-170); cxs.closePath(); cxs.stroke(); cxs.beginPath(); cxs.arc(0,0,5,0,360,false); cxs.closePath(); cxs.fillStyle="grey"; cxs.fill(); cxs.stroke(); cxs.beginPath(); cxs.arc(0,-150,5,0,360,false); cxs.closePath(); cxs.fillStyle="grey"; cxs.fill(); cxs.stroke(); cxs.restore(); } setInterval(date,1000); </script> </head> <body onload="date()"> <canvas width="500" height="500" id="canvas">您的浏览器版本较低,请升级后再使用!!</canvas> </body> </html>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。