HTML5漸層實現,html5漸層
漸層
Context對象可以通過createLinearGradient()和createRadialGradient()兩個方法建立漸層對象,這兩個方法的原型如下:
Object createLinearGradient(x1, y1, x2, y2);
建立一個從(x1, y1)點到(x2, y2)點的線性漸層對象。
Object createRadialGradient(x1, y1, r1, x2, y2, r2);
建立一個從以(x1, y1)點為圓心、r1為半徑的圓到以(x2, y2)點為圓心、r2為半徑的圓的放射狀漸層對象。
漸層對象建立完成之後必須使用它的addColorStop()方法來添加顏色,該方法的原型如下:
void addColorStop(position, color);
其中position表示添加顏色的位置,取值範圍為[0, 1],0表示起點,1表示終點;color表示添加的顏色,取值可以是任何CSS顏色值。
漸層對象建立並配置完成之後就可以將其賦予Context對象的strokeStyle屬性或者fillStyle屬性,然後繪製的圖形就具有了所需的漸層效果。
那咱們一起看一下下面這個例子:
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><style type="text/css">canvas{left: 50%; position:relative; margin-left: -200px; top;}</style></head><body><canvas id="drawDiagonal" width="400" height="500" style="border: 1px solid #008B8B;"></canvas></body><script type="text/javascript">var canvas=document.getElementById('drawDiagonal');var cd=canvas.getContext('2d');cd.save();cd.translate(-10,350);cd.beginPath();cd.moveTo(0,0);cd.quadraticCurveTo(170,-80,260,-190);cd.quadraticCurveTo(310,-250,410,-250);cd.strokeStyle='#663300';cd.lineWidth=50;cd.stroke();cd.restore();var lg = cd.createLinearGradient(80,220,240, 200); //可以嘗試改變這裡的參數,改變不同的效果; lg.addColorStop(0, 'yellow'); lg.addColorStop(0.9, '#3CB371'); lg.addColorStop(1,'#2E8B57'); cd.fillStyle=lg;//把設定好的顏色值附給cd cd.strokeStyle ='yellowgreen';cd.lineWidth=4;cd.lineJoin='round'cd.beginPath();cd.moveTo(200,40);cd.lineTo(160,100);cd.lineTo(185,100);cd.lineTo(145,160);cd.lineTo(170,160);cd.lineTo(135,220);cd.lineTo(180,220);cd.lineTo(170,320);cd.lineTo(235,320);cd.lineTo(220,220)cd.lineTo(260,220);cd.lineTo(225,160);cd.lineTo(250,160);cd.lineTo(210,100);cd.lineTo(235,100);cd.closePath();cd.fill();cd.stroke();</script></html>
其效果如所示:
大家試圖去嘗試一下!哪裡有不明白的地方可以相互交流.