| 
				【源码案例】15款JavaScript基于canvas时钟特效,附源代码					
					
					
						|  | 
							admin 2024年10月13日 22:26
								本文热度 2273 |    
 HTML: <!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>15款基于canvas时钟特效-可复制源代码</title>
<link rel="stylesheet" type="text/css" href="css/zzsc.css"></head><body>
<div class="zzsc-content">  <canvas id="clock1_" width="200px" height="200px">  </canvas>  <canvas id="clock2_" width="200px" height="200px">  </canvas>  <canvas id="clock3_" width="200px" height="200px">  </canvas>  <canvas id="clock4_" width="200px" height="200px">  </canvas>  <canvas id="clock5_" width="200px" height="200px">  </canvas>  <canvas id="clock6_" width="200px" height="200px">  </canvas>  <canvas id="clock7_" width="200px" height="200px">  </canvas>  <canvas id="clock8_" width="200px" height="200px">  </canvas>  <canvas id="clock9_" width="200px" height="200px">  </canvas>  <canvas id="clock10_" width="200px" height="200px">  </canvas>  <canvas id="clock11_" width="200px" height="200px">  </canvas>  <canvas id="clock12_" width="200px" height="200px">  </canvas>  <canvas id="clock13_" width="200px" height="200px">  </canvas>  <canvas id="clock14_" width="200px" height="200px">  </canvas>  <canvas id="clock15_" width="200px" height="200px">  </canvas></div>
<script src="js/canvas_clock.js"></script><script>    clockd1_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd2_={        "indicate": true,        "dial1_color": "#666600",        "time_24h": true,        "timeoffset":0,        "date_add":3,        "date_add_color": "#999",       };    clockd3_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd4_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "date_add":3,        "date_add_color": "#999",       };    clockd5_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd6_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_add_color": "#ccc",        "time_24h": true,        "timeoffset":0,        "date_add":3,        "date_add_color": "#999",       };    clockd7_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd8_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":5,        "date_add_color": "#999",       };    clockd9_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd10_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "track": "#4b4b00",       };    clockd11_={        "dial1_color": "#666600",        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd12_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd13_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd14_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };    clockd15_={        "indicate": true,        "indicate_color": "#222",        "dial1_color": "#666600",        "dial2_color": "#81812e",        "dial3_color": "#9d9d5c",        "time_add": 1,        "time_24h": true,        "date_add":3,        "date_add_color": "#999",       };       var c = document.getElementById('clock1_');    cns1_ = c.getContext('2d');    var c = document.getElementById('clock2_');    cns2_ = c.getContext('2d');    var c = document.getElementById('clock3_');    cns3_ = c.getContext('2d');    var c = document.getElementById('clock4_');    cns4_ = c.getContext('2d');    var c = document.getElementById('clock5_');    cns5_ = c.getContext('2d');    var c = document.getElementById('clock6_');    cns6_ = c.getContext('2d');    var c = document.getElementById('clock7_');    cns7_ = c.getContext('2d');    var c = document.getElementById('clock8_');    cns8_ = c.getContext('2d');    var c = document.getElementById('clock9_');    cns9_ = c.getContext('2d');    var c = document.getElementById('clock10_');    cns10_ = c.getContext('2d');    var c = document.getElementById('clock11_');    cns11_ = c.getContext('2d');    var c = document.getElementById('clock12_');    cns12_ = c.getContext('2d');    var c = document.getElementById('clock13_');    cns13_ = c.getContext('2d');    var c = document.getElementById('clock14_');    cns14_ = c.getContext('2d');    var c = document.getElementById('clock15_');    cns15_ = c.getContext('2d');        clock_conti(200,cns1_,clockd1_);    clock_digital(200,cns2_,clockd2_);    clock_norm(200,cns3_,clockd3_);    clock_binary(200,cns4_,clockd4_);    clock_follow(200,cns5_,clockd5_);    clock_circles(200,cns6_,clockd6_);    clock_dots(200,cns7_,clockd7_);    clock_roulette(200,cns8_,clockd8_);    clock_num(200,cns9_,clockd9_);    clock_planets(200,cns10_,clockd10_);    clock_digitalran(200,cns11_,clockd11_);    clock_bars(200,cns12_,clockd12_);    clock_grow(200,cns13_,clockd13_);    clock_random(200,cns14_,clockd14_);    clock_reverse(200,cns15_,clockd15_);</script>
<div style="text-align:center;margin:20px 0; font:normal 14px/24px 'MicroSoft YaHei';"><p>web前端开发公众号平台,网址:www.webqdkf.com。</p><p>源码:<a href="http://www.webqdkf.com/" target="_blank">每日一练</a></p></div></body></html>
 
 CSS: body{  background: #494A5F;  color: #D5D6E2;  font-weight: 500;  font-size: 1.05em;  font-family: "Microsoft YaHei","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif;}a{ color: rgba(255, 255, 255, 0.6);outline: none;text-decoration: none;-webkit-transition: 0.2s;transition: 0.2s;}a:hover,a:focus{color:#74777b;text-decoration: none;}.htmleaf-container{  margin: 0 auto;}.zzsc-content{  padding: 1em;}
 JS: day_arr=["Sunday", "Monday", "Tuesday","Wednesday","Thursday","Friday","Saturday"];month_arr=["January","February","March","April","May","June","July","August","September","October","November","December"];
function clock_conti(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {  time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {  date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;    cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57+sec*0.1046+milisec/1000*0.1046,-1.569+sec*0.1046+milisec/1000*0.1046,0);  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/15,1.57+sec*0.1046+milisec/1000*0.1046,1.569+sec*0.1046+milisec/1000*0.1046,1);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57+min*0.1046+sec/60*0.1046,-1.569+min*0.1046+sec/60*0.1046,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=3;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/4,-1.57+hour*0.523+min/60*0.523,-1.569+hour*0.523+min/60*0.523,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/80,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_conti(size, cns, clockd)},50);}
function clock_digital(size, cns, clockd){  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours();
  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if(hour<10){hour="0"+hour;}  if(min<10){min="0"+min;}  if(sec<10){sec="0"+sec;}  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333";  cns.textBaseline="middle";  cns.textAlign="center";  cns.font=size/8+"px Arial";  cns.fillText(hour+":"+min+":"+sec,(size/2),size/2.5);
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10,size,cns, clockd);  }
  clockd.timer=setTimeout(function(){clock_digital(size, cns, clockd)},50);}
function clock_reverse(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {    indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {    time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57-sec*0.1046,-1.569-sec*0.1046,0);  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/15,1.57-sec*0.1046,1.569-sec*0.1046,1);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57-min*0.1046,-1.569-min*0.1046,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=3;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/4,-1.57-hour*0.523-min/60*0.523,-1.569-hour*0.523-min/60*0.523,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/80,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_reverse(size, cns, clockd)},50);}
function clock_norm(size, cns, clockd){var br=[60,120,180];var r2=[10,20,30];var r3=[40,80,120];var r4=[4,5,7];
  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {    indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {    time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;    cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57+sec*0.1046,-1.569+sec*0.1046,0);  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/15,1.57+sec*0.1046,1.569+sec*0.1046,1);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57+min*0.1046,-1.569+min*0.1046,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=3;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/4,-1.57+hour*0.523+min/60*0.523,-1.569+hour*0.523+min/60*0.523,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/60,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_norm(size, cns, clockd)},50);}
function clock_follow(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  cns.beginPath();  cns.lineWidth=1;  cns.arc((size/2),(size/2),size/3,-1.57,-1.569+sec*0.1046+milisec/1000*0.1046,0);  cns.lineTo((size/2),(size/2));  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/17,1.57+sec*0.1046+milisec/1000*0.1046,1.569+sec*0.1046+milisec/1000*0.1046,1);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/3.5,-1.57,-1.569+min*0.1046+sec/60*0.1046,0);  cns.lineTo((size/2),(size/2));  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/4.5,-1.57,-1.569+hour*0.523+min/60*0.523,0);  cns.lineTo((size/2),(size/2));  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/60,0,6.28,0);  cns.fill();  cns.closePath();
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {    time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/15, size, cns, clockd);  }
  clockd.timer=setTimeout(function(){clock_follow(size, cns, clockd)},50);}
function clock_circles(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";  cns.beginPath();  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3,-1.57,-1.569+sec*0.1046+milisec/1000*0.1046,0);  cns.lineTo((size/2),(size/2));  cns.fill();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";  cns.beginPath();  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3.5,-1.57,-1.569+min*0.1046+sec/60*0.1046,0);  cns.lineTo((size/2),(size/2));  cns.fill();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";  cns.beginPath();  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/4.5,-1.57,-1.569+hour*0.523+min/60*0.523,0);  cns.lineTo((size/2),(size/2));  cns.fill();  cns.closePath();
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {  time_add((size/2),size/6*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {  date_add((size/2),size/6*3+size/10, size, cns, clockd);  }
  clockd.timer=setTimeout(function(){clock_circles(size, cns, clockd)},50);}
function clock_grow(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {  time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {  date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;    cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),sec*size/200+size/15,-1.57+sec*0.1046+milisec/1000*0.1046,-1.569+sec*0.1046+milisec/1000*0.1046,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),min*size/200+sec/60*size/200+size/15,-1.57+min*0.1046+sec/60*0.1046,-1.569+min*0.1046+sec/60*0.1046,0);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";  cns.lineWidth=2;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),hour*size/200*3+min/60*size/200*3+size/15,-1.57+hour*0.523+min/60*0.523,-1.569+hour*0.523+min/60*0.523,0);  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/60,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_grow(size, cns, clockd)},50);}
function clock_dots(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {  time_add((size/2),size/6*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {  date_add((size/2),size/6*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;    cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.lineCap="round";  for(var a=0;a<(sec+1);a++)  {    var r=parseInt(a)*0.1046;    var calc=Math.cos(r-1.57)*(size/2.8);    var y=Math.sin(r-1.57)*(size/2.8);
    cns.beginPath();    cns.arc(calc+(size/2),y+(size/2),size/100,0,6.28,0);    cns.fill();    cns.closePath();  }
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.lineCap="round";
  for(var a=0;a<(min+1);a++)  {    var r=parseInt(a)*0.1046;    var calc=Math.cos(r-1.57)*(size/3.4);    var y=Math.sin(r-1.57)*(size/3.4);
    cns.beginPath();    cns.arc(calc+(size/2),y+(size/2),size/100,0,6.28,0);    cns.fill();    cns.closePath();  }
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";
  for(var a=0;a<(hour+1);a++)  {    var r=parseInt(a)*0.523;    var calc=Math.cos(r-1.57)*(size/4.5);    var y=Math.sin(r-1.57)*(size/4.5);
    cns.beginPath();    cns.arc(calc+(size/2),y+(size/2),size/100,0,6.28,0);    cns.fill();    cns.closePath();  }
  clockd.timer=setTimeout(function(){clock_dots(size, cns, clockd)},50);}
function clock_num(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {    indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {    time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.lineCap="round";  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3.2,-1.57+sec*0.1046+milisec/1000*0.1046,-1.569+sec*0.1046+milisec/1000*0.1046,0);  cns.stroke();  cns.closePath();
  cns.textBaseline="middle";  cns.textAlign="center";  cns.font=(size/35+5)+"px Arial";  cns.fillText(sec,Math.cos(-1.57+sec*0.1046+milisec/1000*0.1046)*size/3+(size/2),Math.sin(-1.57+sec*0.1046+milisec/1000*0.1046)*size/3+(size/2))
  cns.beginPath();  cns.lineWidth=1;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/15,1.57+sec*0.1046+milisec/1000*0.1046,1.569+sec*0.1046+milisec/1000*0.1046,1);  cns.stroke();  cns.closePath();
  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.beginPath();  cns.lineWidth=2;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/3.2,-1.57+min*0.1046+sec/60*0.1046,-1.569+min*0.1046+sec/60*0.1046,0);  cns.stroke();  cns.closePath();  cns.fillText(min,Math.cos(-1.57+min*0.1046+sec/60*0.1046)*size/3+(size/2),Math.sin(-1.57+min*0.1046+sec/60*0.1046)*size/3+(size/2))
  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.strokeStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.beginPath();  cns.lineWidth=3;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/4,-1.57+hour*0.523+min/60*0.523,-1.569+hour*0.523+min/60*0.523,0);  cns.stroke();  cns.closePath();  if(hour==0){var hour2=12;}else{var hour2=hour;}  cns.fillText(hour2,Math.cos(-1.57+hour*0.523+min/60*0.523)*size/3.5+(size/2),Math.sin(-1.57+hour*0.523+min/60*0.523)*size/3.5+(size/2))
  cns.beginPath();  cns.lineWidth=2;  cns.arc((size/2),(size/2),size/80,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_num(size, cns, clockd)},50);}
function clock_random(size, cns, clockd){  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours();
  if(!clockd.hasOwnProperty("track")){clockd["track"]=20;}  clockd["track"]=parseInt(clockd["track"])+1;
  if(parseInt(clockd["track"])>=20)  {    cns.clearRect(0,0,size,size);
    cns.beginPath();    if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}    cns.rect(0,0,size,size);    cns.fill();    cns.closePath();    if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
    if(clockd.hasOwnProperty("date_add") && clockd.date_add)    {      date_add((size/2),size/5*3+size/10, size, cns, clockd);    }
    var hourx=Math.floor(Math.random()*size/1.5)+Math.floor((size/2)/10);    var houry=Math.floor(Math.random()*size/1.5)+Math.floor((size/2)/10);
    cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";    cns.strokeStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";        if(hour<10){hour="0"+hour;}    if(min<10){min="0"+min;}    if(sec<10){sec="0"+sec;}
    cns.textBaseline="middle";    cns.textAlign="left";    cns.font=(size/15)+"pt Arial";    cns.fillText(hour+":"+min+":"+sec,hourx,houry);
    clockd["track"]=0;  }
  clockd.timer=setTimeout(function(){clock_random(size, cns, clockd)},50);}
function clock_digitalran(size, cns, clockd){  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours();  var hexarr=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");  var a=Math.floor(Math.random()*16);  var b=Math.floor(Math.random()*16);  var c=Math.floor(Math.random()*16);  var d=Math.floor(Math.random()*16);  var e=Math.floor(Math.random()*16);  var f=Math.floor(Math.random()*16);
  if(clockd.hasOwnProperty("track"))  {   clockd["track"]+=1;   }  else  {    clockd["track"]=20;  }
  if(parseInt(clockd["track"])==20)  {    cns.clearRect(0,0,size,size);
    cns.beginPath();    if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}    cns.rect(0,0,size,size);    cns.fill();    cns.closePath();    if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
    if(clockd.hasOwnProperty("date_add") && clockd.date_add)    {      date_add((size/2),size/3*2, size, cns, clockd);    }
    if(hour==0){var hour2=12;}else{var hour2=hour;}    if(hour<10){hour="0"+hour;}    if(min<10){min="0"+min;}    if(sec<10){sec="0"+sec;}    cns.strokeStyle="#333333";    cns.fillStyle="#"+hexarr[a]+hexarr[b]+hexarr[c]+hexarr[d]+hexarr[e]+hexarr[f];    cns.textBaseline="middle";    cns.textAlign="center";    cns.font=size/7+"px Arial";    cns.fillText(hour2+":"+min+":"+sec,(size/2),size/2.5);
    clockd["track"]=0;  }    clockd.timer=setTimeout(function(){clock_digitalran(size, cns, clockd)},50);}
function clock_bars(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var mili=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;    if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {    cns.strokeStyle=(clockd.hasOwnProperty("indicate_color"))?clockd["indicate_color"]:"#333333";
    for(var a=0;a<13;a++)    {      if(a%3==0){cns.lineWidth=2;}else{cns.lineWidth=1;}      cns.beginPath();      cns.moveTo(size/7+size/7.1,size/8+a*size/1.3/12);      cns.lineTo(size/2.38,size/8+a*size/1.3/12);      cns.stroke();      cns.closePath();
      cns.beginPath();      cns.moveTo(size/2.35+size/7.1,size/8+a*size/1.3/12);      cns.lineTo(size/1.45,size/8+a*size/1.3/12);      cns.stroke();      cns.closePath();    }
    cns.beginPath();    cns.moveTo(size/7+size/7.1*1.5,size/8);    cns.lineTo(size/7+size/7.1*1.5,size/8+size/1.3);    cns.stroke();    cns.closePath();
    cns.beginPath();    cns.moveTo(size/2.38+size/7.1*1.5,size/8);    cns.lineTo(size/2.38+size/7.1*1.5,size/8+size/1.3);    cns.stroke();    cns.closePath();  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {    time_add((size/2),size/20, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/14*13, size, cns, clockd);  }
  cns.strokeStyle=(clockd.hasOwnProperty("indicate_color"))?clockd["indicate_color"]:"#333333";  cns.lineCap="round";  cns.fillStyle=(clockd.hasOwnProperty("indicate_color"))?clockd["indicate_color"]:"#333333";
  cns.beginPath();  cns.rect(size/7.4,size/8,size/6.8,size/1.3);  cns.rect(size/2.38,size/8,size/6.8,size/1.3);  cns.rect(size/1.45,size/8,size/6.8,size/1.3);  cns.stroke();  cns.closePath();
  cns.beginPath();  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.rect(size/7.4,size/8+size/1.3-(size/1.3)*(hour*60+min)/720,size/6.8,(size/1.3)*(hour*60+min)/720);  cns.fill()  cns.closePath();
  cns.beginPath()  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.rect(size/2.38,size/8+size/1.3-(size/1.3)*(min*60+sec)/3600,size/6.8,(size/1.3)*(min*60+sec)/3600);  cns.fill();  cns.closePath();
  cns.beginPath();  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.rect(size/1.45,size/8+size/1.3-(size/1.3)*(sec*1000+mili)/60000,size/6.8,(size/1.3)*(sec*1000+mili)/60000);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_bars(size, cns, clockd)},50);}
function clock_planets(size, cns, clockd){  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  if((clockd.hasOwnProperty("indicate") && clockd.indicate==true) || !clockd.hasOwnProperty("indicate"))  {  indicator(size, cns, clockd);  }
  if(clockd.hasOwnProperty("time_add") && clockd.time_add)  {  time_add((size/2),size/5*3, size, cns, clockd);  }
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {  date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  if(clockd.hasOwnProperty("track")){cns.fillStyle=clockd["track"];}else{cns.fillStyle="#DAA520";}  cns.beginPath();  cns.lineWidth=3;  cns.moveTo((size/2),(size/2));  cns.arc((size/2),(size/2),size/25,0,6.29,0);  cns.lineTo((size/2),(size/2));  cns.fill();  cns.closePath();
  var r=parseInt(milisec)*0.00628;  var calcms=Math.cos(r-1.57)*(size/25);  var yms=Math.sin(r-1.57)*(size/25);
  var r=parseInt(sec)*0.1046+parseInt(milisec)/1000*0.1046;  var calc=Math.cos(r-1.57)*(size/5);  var y=Math.sin(r-1.57)*(size/5);
  var r=parseInt(min)*0.1046+parseInt(sec)/60*0.1046;  var calcm=Math.cos(r-1.57)*(size/3.2);  var ym=Math.sin(r-1.57)*(size/3.2);
  var r=parseInt(hour)*0.523+parseInt(min)/60*0.523;  var calcu=Math.cos(r-1.57)*(size/2.5);  var yu=Math.sin(r-1.57)*(size/2.5);
  if(clockd.hasOwnProperty("indicate_color")){cns.strokeStyle=clockd["indicate_color"];}else{cns.strokeStyle="#333";}
  cns.closePath();  cns.beginPath();  cns.lineWidth=1;  cns.arc((size/2),(size/2),(size/5),0,6.28,0);  cns.stroke();  cns.closePath();  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.beginPath();  cns.lineWidth=3;  cns.arc(calc+(size/2),y+(size/2),size/42,0,6.28,0);  cns.fill();
  cns.closePath();  cns.beginPath();  cns.lineWidth=1;  cns.arc((size/2)+calc,(size/2)+y,size/24,0,6.28,0);  cns.stroke();  cns.closePath();  cns.beginPath();  cns.lineWidth=3;  cns.arc((size/2)+calc+calcms,(size/2)+y+yms,size/110,0,6.28,0);  cns.fill();
  cns.beginPath();  cns.lineWidth=1;  cns.arc((size/2),(size/2),size/3.2,0,6.28,0);  cns.stroke();  cns.closePath();  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.beginPath();  cns.lineWidth=3;  cns.arc(calcm+(size/2),ym+(size/2),size/24,0,6.28,0);  cns.fill();  cns.closePath();
  cns.beginPath();  cns.lineWidth=1;  cns.arc((size/2),(size/2),size/2.5,0,6.28,0);  cns.stroke();  cns.closePath();  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.beginPath();  cns.lineWidth=3;  cns.arc(calcu+(size/2),yu+(size/2),size/22,0,6.28,0);  cns.fill();  cns.closePath();
  clockd.timer=setTimeout(function(){clock_planets(size, cns, clockd)},50);}
function clock_roulette(size, cns, clockd){  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  var a=hour-2;var b=hour-1;var c=hour+1;var d=hour+2;var e=hour+3;  if(a<0){a=24+a;}  if(b<0){b=24+b;}  if(c>23){c=c-24;}  if(d>23){d=d-24;}  if(e>23){e=e-24;}
  var f=hour;  if(a<10){a="0"+a;}  if(b<10){b="0"+b;}  if(c<10){c="0"+c;}  if(d<10){d="0"+d;}  if(e<10){e="0"+e;}  if(f<10){f="0"+f;}  cns.font=size/10+"pt Arial";  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.fillText(a,size/5,size/10-size/5*min/60-size/5*sec/36000);  cns.fillText(b,size/5,size/10+size/5-size/5*min/60-size/5*sec/36000);  cns.globalAlpha=0.3;  cns.fillText(f,size/5,size/10+2*size/5-size/5*min/60-size/5*sec/3600);  cns.globalAlpha=1;  cns.fillText(c,size/5,size/10+3*size/5-size/5*min/60-size/5*sec/3600);  cns.fillText(d,size/5,size/10+4*size/5-size/5*min/60-size/5*sec/3600);  cns.fillText(e,size/5,size/10+5*size/5-size/5*min/60-size/5*sec/3600);
  var a=min-2;var b=min-1;var c=min+1;var d=min+2;var e=min+3;  if(a<0){a=60+a;}  if(b<0){b=60+b;}  if(c>59){c=c-60;}  if(d>59){d=d-60;}  if(e>59){e=e-60;}
  var f=min;  if(a<10){a="0"+a;}  if(b<10){b="0"+b;}  if(c<10){c="0"+c;}  if(d<10){d="0"+d;}  if(e<10){e="0"+e;}  if(f<10){f="0"+f;}  cns.fillStyle=(clockd.hasOwnProperty("dial2_color"))?clockd["dial2_color"]:"#333333";  cns.fillText(a,size/2,size/10-size/5*sec/60-size/5*milisec/60000);  cns.fillText(b,size/2,size/10+size/5-size/5*sec/60-size/5*milisec/60000);  cns.globalAlpha=0.3;  cns.fillText(f,size/2,size/10+2*size/5-size/5*sec/60-size/5*milisec/60000);  cns.globalAlpha=1;  cns.fillText(c,size/2,size/10+3*size/5-size/5*sec/60-size/5*milisec/60000);  cns.fillText(d,size/2,size/10+4*size/5-size/5*sec/60-size/5*milisec/60000);  cns.fillText(e,size/2,size/10+5*size/5-size/5*sec/60-size/5*milisec/60000);
  var a=sec-2;var b=sec-1;var c=sec+1;var d=sec+2;var e=sec+3;  if(a<0){a=60+a;}  if(b<0){b=60+b;}  if(c>59){c=c-60;}  if(d>59){d=d-60;}  if(e>59){e=e-60;}
  var f=sec;  if(a<10){a="0"+a;}  if(b<10){b="0"+b;}  if(c<10){c="0"+c;}  if(d<10){d="0"+d;}  if(e<10){e="0"+e;}  if(f<10){f="0"+f;}  cns.fillStyle=(clockd.hasOwnProperty("dial3_color"))?clockd["dial3_color"]:"#333333";  cns.fillText(a,size/5*4,size/10-size/5*milisec/1000);  cns.fillText(b,size/5*4,size/10+size/5-size/5*milisec/1000);  cns.globalAlpha=0.3;  cns.fillText(f,size/5*4,size/10+2*size/5-size/5*milisec/1000);  cns.globalAlpha=1;  cns.fillText(c,size/5*4,size/10+3*size/5-size/5*milisec/1000);  cns.fillText(d,size/5*4,size/10+4*size/5-size/5*milisec/1000);  cns.fillText(e,size/5*4,size/10+5*size/5-size/5*milisec/1000);
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  if(clockd.hasOwnProperty("indicate") && clockd.indicate)  {    cns.strokeStyle=(clockd.hasOwnProperty("indicate_color"))?clockd["indicate_color"]:"#333333";    cns.beginPath();    cns.moveTo(0,(size/2));    cns.lineTo(size,(size/2));    cns.stroke()    cns.closePath();  }
  clockd.timer=setTimeout(function(){clock_roulette(size, cns, clockd)},50);}
function clock_binary(size, cns, clockd){  var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var milisec=now.getMilliseconds();  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=now.getHours()%12;
  cns.clearRect(0,0,size,size);
  cns.beginPath();  if(clockd.hasOwnProperty("bg_color")){cns.fillStyle=clockd["bg_color"];}else{cns.fillStyle="#ffffff";}  cns.rect(0,0,size,size);  cns.fill();  cns.closePath();  if(clockd.hasOwnProperty("bgLoaded") && clockd.bgLoaded==1){if(clockd.hasOwnProperty("bg_opacity")){cns.globalAlpha=clockd["bg_opacity"];cns.drawImage(clockd.bgImage,0,0,size,size);cns.globalAlpha=1;}}
  hourstr="";  if(hour<1){hourstr="0";}  while(hour>0)  {  hourstr=hour%2+hourstr;  hour=hour-hour%2;  hour=hour/2;  }  if(hourstr.length<6){while(hourstr.length<6){hourstr="0"+hourstr;}}
  minstr="";  if(min<1){minstr="0";}  while(min>0)  {  minstr=min%2+minstr;  min=min-min%2;  min=min/2;  }  if(minstr.length<6){while(minstr.length<6){minstr="0"+minstr;}}
  secstr="";  if(sec<1){secstr="0";}  while(sec>0)  {  secstr=sec%2+secstr;  sec=sec-sec%2;  sec=sec/2;  }  if(secstr.length<6){while(secstr.length<6){secstr="0"+secstr;}}
  cns.fillStyle=(clockd.hasOwnProperty("dial1_color"))?clockd["dial1_color"]:"#333333";  cns.textBaseline="middle";  cns.textAlign="center";  cns.font=size/8+"px Courier New";  cns.fillText(hourstr,(size/2),size/5);  cns.fillText(minstr,(size/2),size/5*2);  cns.fillText(secstr,(size/2),size/5*3);
  if(clockd.hasOwnProperty("date_add") && clockd.date_add)  {    date_add((size/2),size/5*3+size/10, size, cns, clockd);  }
  clockd.timer=setTimeout(function(){clock_binary(size, cns, clockd)},50);}
function clock_stop(clockd){  clearTimeout(clockd.timer);}
function clock_loadBG(src, clockd){  clockd.bgImage = new Image();  clockd.bgImage.onload = function(){ clockd.bgLoaded=1; };  clockd.bgImage.src = src;    if(!clockd.hasOwnProperty("bg_opacity")){clockd.bg_opacity=1;}}
function indicator(size, cns, clockd){  if(clockd.hasOwnProperty("indicate_color")){cns.strokeStyle=clockd["indicate_color"];}else{cns.strokeStyle="#333";}  cns.lineWidth=2;
  for(var a=0;a<12;a++)  {    var r=parseInt(a)*0.523;    var calc=Math.cos(r-1.57);    var y=Math.sin(r-1.57);
    if(a%3==0){var ekstra=size/50;}else{var ekstra=0;}    cns.beginPath();    cns.moveTo(calc*(size/3+ekstra)+(size/2),y*(size/3+ekstra)+(size/2));    cns.lineTo(calc*size/3.25+(size/2),y*size/3.25+(size/2));    cns.stroke();    cns.fill();    cns.closePath();  }}
function time_add(x, y, size, cns, clockd){  if(!clockd.hasOwnProperty("time_add"))  {    return;  }    var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var sec=now.getSeconds();  var min=now.getMinutes();  var hour=(clockd.hasOwnProperty("time_24h") && clockd["time_24h"])?now.getHours():now.getHours()%12;
  if(hour==0){hour=12;}  if(hour<10){hour="0"+hour;}  if(min<10){min="0"+min;}  if(sec<10){sec="0"+sec;}  cns.lineWidth=1;  cns.fillStyle=(clockd.hasOwnProperty("time_add_color")?clockd["time_add_color"]:"#333");  cns.textBaseline="middle";  cns.textAlign="center";  cns.font=size/15+"px Arial";
  switch(parseInt(clockd["time_add"]))  {    case 1:      cns.fillText(hour+":"+min+":"+sec,x,y);    break;    case 2:      cns.fillText(hour+":"+min,x,y);    break;    case 3:      hour=now.getHours();        if(hour<10){hour="0"+hour;}    cns.fillText(hour+":"+min+":"+sec,x,y);    break;    default:      hour=now.getHours();      if(hour<10){hour="0"+hour;}      cns.fillText(hour+":"+min,x,y);  }}
function date_add(x, y, size, cns, clockd){  if(!clockd.hasOwnProperty("date_add"))  {    return;  }    var now=new Date();  var time_off=(clockd.hasOwnProperty("timeoffset"))?clockd["timeoffset"]:0;  now.setTime(now.getTime()+time_off*1000);  var day=now.getDate();  var year=now.getFullYear();  var month=now.getMonth()+1;
  if((month)<10){month="0"+(month);}  if(day<10){day="0"+day;}
  cns.lineWidth=1;  cns.fillStyle=clockd["date_add_color"];  cns.textBaseline="middle";  cns.textAlign="center";  cns.font=size/20+"px Arial";
  switch(parseInt(clockd["date_add"]))  {    case 1:      cns.fillText(day+"/"+month+"/"+year,x,y);    break;    case 2:      cns.fillText(month+"/"+day+"/"+year,x,y);    break;    case 3:      day=now.getDay();      cns.fillText(day_arr[day],x,y);    break;    case 4:      month=now.getMonth();      cns.fillText(month_arr[month]+" "+day,x,y);    break;    default:      month=now.getMonth();      cns.fillText(day+" "+month_arr[month],x,y);  }}
 该文章在 2024/10/14 12:25:47 编辑过
 |  |