日期:2014-05-17 浏览次数:20688 次
<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8"> <title>practice---clock</title> <style type="text/css"> @font-face { font-family:DFGirl; src:url("./DFGirl.ttf"); src: local("DFGirl"), url("./DFGirl.ttf"); } canvas{ border:2px solid #; margin:px px; } </style> <!--[if lt IE 9]> <script src="excanvas.min.js" type="text/javascript"></script> <![endif] --> </head> <body> <canvas id='c'></canvas> </body> <script type="text/javascript"> window.onload = draw; function draw(){ var canvas = document.getElementById('c'); //You can change the width and height canvas.width = ; canvas.height = ; if(!canvas.getContext){ alert('Your browser don\'t support canvas!'); }else{ clock(canvas); //starts here } function clock(canvas){ var ctx = canvas.getContext('2d'); //背景色 ctx.fillStyle = '#E6E4E5'; ctx.fillRect(0, 0, canvas.width, canvas.height); //更改坐标系到中间 ctx.translate(canvas.width*0.5, canvas.height*0.5); //画底部阴影 var bottom_shadow = ctx.createRadialGradient(0, , , 0, , ); bottom_shadow.addColorStop(0, 'rgba(0, 0, 0, )'); bottom_shadow.addColorStop(0.4, 'rgba(, , , )'); bottom_shadow.addColorStop(0.9, '#E6E4E5'); ctx.fillStyle = bottom_shadow; ctx.beginPath(); ctx.arc(0, , , Math.PI*0.8, Math.PI*0.2, false); ctx.fill(); //底部桌面 var bottom_blank = 18; ctx.fillStyle = '#DFDFDF'; ctx.fillRect(-canvas.width*0.5, canvas.height*0.5-bottom_blank, canvas.width, bottom_blank); //白色外框 var frame_width = 18; var inner_radius = ; ctx.beginPath(); ctx.strokeStyle = '#FBFAF6'; ctx.lineWidth = frame_width; ctx.arc(0, 0, inner_radius + frame_width*0.5, 0, Math.PI*2, true); ctx.stroke(); //黑色内线 ctx.beginPath(); ctx.strokeStyle = '#'; ctx.lineWidth = 2; ctx.arc(0, 0, inner_radius + 2, 0, Math.PI*2, true); ctx.stroke(); //白色内遮罩 ctx.beginPath(); ctx.arc(0, 0, inner_radius, 0, Math.PI*2, true); ctx.clip(); setInterval(function(){time_animate(ctx);}, 0); } //时针函数 function get_hand_angle(h, m, s){ if(h>12) h -= 12; var h_angle = (h/6 + m/ + s/00) * Math.PI; var m_angle = (m/30 + s/0) * Math.PI; var s_angle = s/30 * Math.PI; return { 'h' : h_angle, 'm' : m_angle, 's' : s_angle } } function time_animate(ctx){ ctx.save(); ctx.clearRect(-, -, , ); var inner_radius = ; //图案背景 ctx.beginPath(); var img = new Image(); img.src = 'point.jpg'; var bg = ctx.createPattern(img, 'repeat'); ctx.fillStyle = bg; ctx.arc(0, 0, inner