DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> 跟KingDZ學HTML5之六:Canvas特效-陰影和漸變
跟KingDZ學HTML5之六:Canvas特效-陰影和漸變
編輯:HTML5詳解     

我們首先看一下,如何實現一個陰影效果,呵呵,看效果吧

1

好了 ,先給大家展示一下代碼,在說明一下。

XML/Html Code復制內容到剪貼板
  1. <! doctype Html>  
  2. <Html>  
  3. <head>  
  4.     <script type="text/Javascript">  
  5.         function draw() {  
  6.             var c = document.getElementById("mycanvas");  
  7.             var ccxt = c.getContext("2d");  
  8.             cxt.shadowOffsetX = 5;  
  9.             cxt.shadowOffsetY = 5;  
  10.             cxt.shadowBlur = 4;  
  11.             cxt.shadowColor = "rgba(255,0,0,0.5)";  
  12.             cxt.fillStyle = "orange";  
  13.             cxt.arc(50, 50, 50, 0, Math.PI * 2, true);  
  14.             cxt.fill();  
  15.         }  
  16.     </script>  
  17. </head>  
  18. <body>  
  19.      <canvas id="mycanvas" width="200" height="200">不支持此標簽 KingDZ原創 http://www.cnblogs.com/hihell</canvas>  
  20.      <input type="button" value="畫圖" onclick="draw();" />  
  21. <body>  
  22. </Html>  

上面的結果注意點

  • shadowColor:陰影顏色。其值和 CSS 顏色值一致。 【之前的課程我已經說明過了】
  • shadowBlur:設置陰影模糊程度。此值越大,陰影越模糊。
  • shadowOffsetX 和 shadowOffsetY:陰影的 x 和 y 偏移量,單位是像素。
顏色漸變

顏色漸變的幾個重要屬性。

createLinearGradient 和 createRadialGradIEnt。

前者創建線性顏色漸變,後者創建圓形顏色漸變。創建顏色漸變對象後,可以使用對象的 addColorStop 方法添加顏色中間值。

好了,還是用例子說明吧。

JavaScript Code復制內容到剪貼板
  1. createLinearGradIEnt(x1,y1,x2,y2)   //(x1,y1)漸變的起點  (x2,y2)漸變的終點   
  2. createRadialGradIEnt(x1,y1,r1,x2,y2,r2)   //   前面是一個 原點為 (x1,y1) 半徑為  r1的點,後面的那個是以(x2,y2) 為原點,r2為半徑的點。  

addColorStop(position, color)//這個方法的第一個參數,就是位置,取值范圍  0---1.0   color 則必須是一個 CSS  顏色值

下面我們實現一個線性漸變

1 

JavaScript Code復制內容到剪貼板
  1. function draw() {  
  2.             var c = document.getElementById("mycanvas");  
  3.             var cxt = c.getContext("2d");  
  4.             var lineargradient = cxt.createLinearGradIEnt(0, 0, 200, 0);  
  5.             lineargradIEnt.addColorStop(0, 'red');  
  6.             lineargradIEnt.addColorStop(1, 'white');  
  7.             cxt.fillStyle = lineargradIEnt;  
  8.             cxt.fillRect(0, 0, 200, 200);  
  9.         }  

好了,一個簡單的漸變就做好了。

1

JavaScript Code復制內容到剪貼板
  1. function draw() {  
  2.         var c = document.getElementById("mycanvas");  
  3.         var cxt = c.getContext("2d");  
  4.         var rad = cxt.createRadialGradIEnt(70, 70, 70, 40, 40, 10);  
  5.         rad.addColorStop(0, "#fff");  
  6.         rad.addColorStop(0.7, "#333")  
  7.         rad.addColorStop(1, "#000");  
  8.         cxt.fillStyle = rad;  
  9.         cxt.fillRect(0, 0, 200, 200);  
  10.     }  

OK,搞定這兩種漸變方式了。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved