首页 > 代码库 > 用html5中的canvas写的时钟
用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=http://www.mamicode.com/"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 onl oad="date()"> <canvas width="500" height="500" id="canvas">您的浏览器版本较低,请升级后再使用!!</canvas> </body> </html>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。