歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> HTML5 利用canvas API 展示陰影效果

HTML5 利用canvas API 展示陰影效果

日期:2017/3/1 10:23:16   编辑:Linux編程

HTML5的Canvas自帶API可以顯示陰影效果,主要還是在畫布(canvas)的上下文對象(context)上做文章

  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>HTML5 Combine Shape DEMO</title>
  5. <script type="text/javascript" src="js/drawShadow.js"></script>
  6. </head>
  7. <body onload="draw('canvas')"></body>
  8. <h2>canvas:顯示陰影效果</h2>
  9. <!-- 指定一個canvas元素用於顯示結果 -->
  10. <canvas id="canvas" width="400” height="400"/>
  11. <br><br>

畫帶陰影效果的圖形見如下的js代碼:

  1. /**
  2. * This file is confidential by Charles.Wang
  3. * Copyright belongs to Charles.wang
  4. * You can make contact with Charles.Wang ([email protected])
  5. */
  6. function draw (id){
  7. //取得畫布對象
  8. var canvas = document.getElementById(id);
  9. if(canvas ==null)
  10. return false;
  11. //取得上下文
  12. var context = canvas.getContext('2d');
  13. //繪制底圖
  14. context.fillStyle='#FFEEFF';
  15. context.fillRect(0,0,400,400);
  16. //以下4個屬性是陰影的設置屬性,用他們可以用來畫陰影效果
  17. //shadowOffSetX是橫向位移量,所以這裡設置為10表明陰影會出現在原圖形右邊,最多10像素
  18. context.shadowOffSetX=10;
  19. //shadowOffSetX是縱向位移量,所以這裡設置為10表明陰影會出現在原圖形下邊,最多10像素
  20. context.shadowOffsetY=10;
  21. //陰影的顏色
  22. context.shadowColor="rgba(50,50,100,0.5)";
  23. //陰影的模糊范圍
  24. context.shadowBlur=7.5;
  25. //所以到這裡為止,我們吧上下文關聯上了陰影效果,所有用這個context繪制的圖形都會有(+10,+10)的陰影效果
  26. //繪制五角星
  27. context.translate(50,50);
  28. create5star(context);
  29. context.fill();
  30. }
  31. function create5star(context){
  32. var n = 0;
  33. var dx=100;
  34. var dy=0;
  35. var s = 50;
  36. //創建路徑
  37. context.beginPath();
  38. context.fillStyle='rgba(255,0,0,0.5)';
  39. var x = Math.sin(0);
  40. var y=Math.cos(0);
  41. var dig = Math.PI/5*4;
  42. //畫5條邊
  43. for(var i =0;i<5;i++){
  44. var x = Math.sin(i * dig);
  45. var y = Math.cos(i* dig);
  46. context.lineTo(dx+x*s,dy+y*s);
  47. }
  48. context.closePath();
  49. }

最終展示效果如圖:

650) this.width=650;" border=0>

Copyright © Linux教程網 All Rights Reserved