һ
 ¼ע

QQ¼

ֻһٿʼ

̳ WEBҳǰ뿪 ǰ̨ű

Ưıƽcanvasʱ Ч

[]
117181 happy175 2016-8-26 09:36:54
| ʾȫ¥
1F
Ưıƽcanvasʱ

Чͼ


  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Document</title>
  6. </head>

  7. <body>
  8.     <canvas id="canvas" style="margin: 20px auto 0;display: block"></canvas>
  9. </body>
  10. <script>
  11. var canvas = document.getElementById("canvas");
  12. canvas.width = 800;
  13. canvas.height = 800;
  14. var img = new Image();
  15. var cxt = canvas.getContext("2d");
  16. window.onload = function() {
  17.     clock()
  18.     setInterval(function(argument) {
  19.         clock()

  20.     }, 1000)
  21. }

  22. function clock() {
  23.     //ȡǰʱ
  24.     var d = new Date();
  25.     var h, m, s;
  26.     h = d.getHours();
  27.     h = h > 12 ? h - 12 : h;
  28.     m = d.getMinutes();
  29.     s = d.getSeconds();

  30.     //Ʊ
  31.     img.src = "https://wuchujiang.github.io/pages/image/wood.jpg";
  32.     cxt.clearRect(0, 0, canvas.width, canvas.height);
  33.     img.onload = function() {
  34.         cxt.drawImage(img, 0, 0);
  35.         //ɫ
  36.         var gra2 = cxt.createLinearGradient(200, 0, 600, 0);
  37.         gra2.addColorStop(0, "#3fccde");
  38.         gra2.addColorStop(0.5, "#3fccde");
  39.         gra2.addColorStop(0.5, "#a2d658");
  40.         gra2.addColorStop(1, "#a2d658");
  41.         cxt.beginPath();
  42.         cxt.arc(400, 400, 180, 0, 2 * Math.PI);
  43.         cxt.closePath();
  44.         cxt.fillStyle = gra2;
  45.         cxt.fill();

  46.         //Ʊ
  47.         cxt.save();
  48.         var gra = cxt.createLinearGradient(0, 0, 0, 600);
  49.         gra.addColorStop(0, "#f7f9f7")
  50.         gra.addColorStop(1, "#e0ecde");
  51.         cxt.beginPath();
  52.         cxt.arc(400, 400, 200, 0, 2 * Math.PI, true);
  53.         cxt.arc(400, 400, 180, 0, 2 * Math.PI, false);
  54.         cxt.fillStyle = gra;
  55.         cxt.shadowOffsetX = 0;
  56.         cxt.shadowOffsetY = 10;
  57.         cxt.shadowBlur = 30;
  58.         cxt.shadowColor = "rgba(0,0,0,0.3)";
  59.         cxt.fill()
  60.         cxt.restore();

  61.         //ƿ̶
  62.         for (var i = 1; i <= 60; i++) {
  63.             cxt.save();
  64.             cxt.translate(400, 400);
  65.             cxt.beginPath();
  66.             cxt.rotate((i * (360 / 60)) / 180 * Math.PI);
  67.             var y = i % 5 ? -150 : -147
  68.             var sty = i % 5 ? "rgba(255,255,255,0.6)" : "#fff";
  69.             cxt.moveTo(0, y);
  70.             cxt.lineTo(0, -160);
  71.             cxt.closePath();
  72.             cxt.strokeStyle = sty;
  73.             cxt.lineWidth = 2;
  74.             cxt.stroke();
  75.             cxt.restore();
  76.         }

  77.         //ʱ̶
  78.         for (var i = 1; i <= 12; i++) {
  79.             cxt.save();
  80.             cxt.translate(400, 400);
  81.             cxt.font = "normal 20px Georgia";
  82.             cxt.textAlign = "center";
  83.             cxt.textBaseline = "middle";
  84.             cxt.fillStyle = "#fff";
  85.             cxt.fillText(i, Math.cos((-90 + i * 360 / 12) / 180 * Math.PI) * 130, Math.sin((-90 + i * 360 / 12) / 180 * Math.PI) * 130)
  86.             cxt.restore();
  87.         }

  88.         //Ȧ
  89.         var gra4 = cxt.createRadialGradient(400, 400, 8, 400, 400, 6);
  90.         gra4.addColorStop(0, "#000");
  91.         gra4.addColorStop(1, "#111");
  92.         cxt.beginPath();
  93.         cxt.arc(400, 400, 10, 0, 2 * Math.PI);
  94.         cxt.fillStyle = gra4;
  95.         cxt.fill();

  96.         //ʱ롣
  97.         cxt.save();
  98.         cxt.translate(400, 400);
  99.         cxt.rotate((h + m / 60) * 30 / 180 * Math.PI)
  100.         cxt.beginPath();
  101.         cxt.moveTo(0, 25);
  102.         cxt.lineTo(0, -100);
  103.         cxt.lineWidth = 4;
  104.         cxt.strokeStyle = "#fff";
  105.         cxt.shadowOffsetX = 6;
  106.         cxt.shadowOffsetY = 6;
  107.         cxt.shadowBlur = "7";
  108.         cxt.shadowColor = "rgba(0,0,0,0.2)";
  109.         cxt.stroke();
  110.         cxt.restore();

  111.         //Ʒ롣
  112.         cxt.save();
  113.         cxt.translate(400, 400);
  114.         cxt.rotate((m + s / 60) * 6 / 180 * Math.PI);
  115.         cxt.beginPath();
  116.         cxt.moveTo(0, 25);
  117.         cxt.lineTo(0, -110);
  118.         cxt.lineWidth = 3;
  119.         cxt.strokeStyle = "#fff";
  120.         cxt.shadowOffsetX = 6;
  121.         cxt.shadowOffsetY = 6;
  122.         cxt.shadowBlur = "7";
  123.         cxt.shadowColor = "rgba(0,0,0,0.2)";
  124.         cxt.stroke();
  125.         cxt.restore();

  126.         //롣
  127.         cxt.save();
  128.         cxt.translate(400, 400);
  129.         cxt.rotate(s * 6 / 180 * Math.PI);
  130.         cxt.beginPath();
  131.         cxt.strokeStyle = "#fff";
  132.         cxt.moveTo(0, 20);
  133.         cxt.lineTo(0, -135);
  134.         cxt.closePath();
  135.         cxt.shadowOffsetX = 6;
  136.         cxt.shadowOffsetY = 6;
  137.         cxt.shadowBlur = "7";
  138.         cxt.shadowColor = "rgba(0,0,0,0.2)";
  139.         cxt.lineWidth = 2;
  140.         cxt.stroke();
  141.         cxt.beginPath();
  142.         cxt.arc(0, -130, 6, 0, 2 * Math.PI)
  143.         cxt.closePath();
  144.         cxt.fillStyle = "#fff";
  145.         cxt.fill();
  146.         cxt.restore();

  147.         //ԲȦ
  148.         cxt.save();
  149.         var gra3 = cxt.createRadialGradient(400, 400, 3, 400, 400, 6);
  150.         gra3.addColorStop(0, "#fff");
  151.         gra3.addColorStop(1, "#f0f0f0");
  152.         cxt.beginPath();
  153.         cxt.arc(400, 400, 6, 0, 2 * Math.PI);
  154.         cxt.fillStyle = gra3;
  155.         cxt.fill();
  156.         cxt.restore();

  157.         //
  158.         cxt.save();
  159.         cxt.font = "normal 16px Georgia";
  160.         cxt.fillStyle = "#fff";
  161.         cxt.textAlign = "center";
  162.         cxt.textBaseline = "middle";
  163.         cxt.shadowOffsetX = 0;
  164.         cxt.shadowOffsetY = 2;
  165.         cxt.shadowBlur = "1";
  166.         cxt.shadowColor = "rgba(0,0,0,0.1)";
  167.         cxt.fillText("CANVAS", 400, 490);
  168.         cxt.restore();
  169.     }
  170. }
  171. </script>
  172. </html>
ƴ



аԴ

Ҫ ¼ ſػ鿴û˺ţ¼ע

x
Դ΢http://weibo.com/techued Դ΢Źںţweb-tech
ʹõ ٱ ظ
lushan517034 2017-6-30 18:34:03
| ʾȫ¥
2F
زأDz˰ɡ
й֤         http://www.rdjlt.com/
cqcй֤         http://www.rdjlt.com/
й֤         http://www.rdjlt.com/
ϵ֤Ȩ         http://www.rdjlt.com/
Ȩisoϵ֤         http://www.rdjlt.com/
йccc֤         http://www.rdjlt.com/
йǿ֤ccc         http://www.rdjlt.com/
йccc֤         http://www.rdjlt.com/
йccc֤ƽ̨         http://www.rdjlt.com/
ϵ֤         http://www.rdjlt.com/
CCC֤         http://www.rdjlt.com/
֤         http://www.rdjlt.com/
AAAҵ         http://www.rdjlt.com/
֤         http://www.rdjlt.com/
Ͷ֤         http://www.rdjlt.com/
й֤ѯ˾         http://www.rdjlt.com/
ƵԴ http://www.rwdlt.com/
ɱ̵Դ http://www.rwdlt.com/
ֱԴhttp://www.rwdlt.com
иԴƼ޹˾http://www.rwdlt.com/
ƵԴhttp://www.rwdlt.com/
ɱ̵Դhttp://www.rwdlt.com/
ֱԴhttp://www.rwdlt.com/
иԴƼ޹˾http://www.rwdlt.com/
װerp              http://www.hanson.cn/
Դ΢http://weibo.com/techued Դ΢Źںţweb-tech
ʹõ ٱ ظ ֧
б

ֹ

̳¡ͼƬѷϴվԭתԻ,µİȨԭ
վַİȨ֪ͨǵĹԱ,Ա(Email:admin@websjy.com)ʱȡȨɾ
ܾκκʽڱ̳л񹲺͹ִ!

QQ| 42011102000510|Archiver|ֻ|Դ-̳ ( ICP19023897-2 )

GMT+8, 2023-6-6 06:36

ٻظ ض б