今天又再看了html5的顏色漸變API,發(fā)現(xiàn)沒有第一次看那么復(fù)雜。
不過我對這個顏色漸變存在著一個疑惑就是兩種色帶之間,那段是屬于兩種顏色混合的,有點模糊。
比如從紅色變成黃色,在紅與黃之間的那個地方,不會是純色的紅和黃,我一開始不是很明白,現(xiàn)在我是理解的:漸變顏色嘛,字面上的意思,就是漸變,在這兩種顏色之間,由一種顏色漸變過渡到另一種顏色。
一、創(chuàng)建漸變顏色對象的步驟蠻簡單的,線性漸變比徑向漸變少了兩個參數(shù)而已。具體步驟是這樣的:
1、獲取到你的canvas畫布后,我們需要創(chuàng)建顏色漸變對象 ? var gradient
2、設(shè)置要漸變的顏色帶 ? addColorStop(顏色帶的所在點,"顏色")
3、將顏色漸變對象賦值給填充類型 fillStyle
4、進行繪制
ok了!
<
body
>
<!--
作者:1107989194@qq.com
時間:2014-04-12
描述:漸變色 linear radial
-->
<
canvas
id
="myCanvas"
width
="300"
height
="150"
style
="border: 1px solid black"
></
canvas
>
<
script
>
var
myCanvas
=
document.getElementById(
"
myCanvas
"
);
var
context
=
myCanvas.getContext(
"
2d
"
);
var
gradient
=
context.createLinearGradient(
0
,
0
,myCanvas.width,
0
);
//
創(chuàng)建顏色漸變對象
gradient.addColorStop(
0
,
'
blue
'
);
//
設(shè)置顏色停止點(過渡顏色所在位置)
gradient.addColorStop(
0.25
,
'
white
'
);
gradient.addColorStop(
0.5
,
'
purple
'
);
gradient.addColorStop(
0.75
,
'
red
'
);
gradient.addColorStop(
1.0
,
'
yellow
'
);
context.fillStyle
=
gradient;
//
把漸變對象賦值給填充類型
context.fillRect(
0
,
0
,myCanvas.width,myCanvas.height);
//
繪制圖形
</
script
>
<!--
作者:1107989194@qq.com
時間:2014-04-12
描述:徑向漸變
-->
<
canvas
id
="myCanvas2"
width
="300"
height
="150"
style
="border: 1px solid black"
>
換個瀏覽器唄
</
canvas
>
<
script
>
var
myCanvas2
=
document.getElementById(
"
myCanvas2
"
);
var
context2
=
myCanvas2.getContext(
"
2d
"
);
//
var gradient2 = context.createRadialGradient(0,0,myCanvas2.width,myCanvas2.width,myCanvas2.height,myCanvas2.height); //創(chuàng)建顏色徑向漸變對象
var
gradient2
=
context2.createRadialGradient(myCanvas2.width
/
2,myCanvas2.height
/
2
,
0
,myCanvas2.width
/
2,myCanvas2.height
/
2
,
100
);
//
創(chuàng)建顏色徑向漸變對象(一個圓從中間向四周徑向漸變)
gradient2.addColorStop(
0
,
'
blue
'
);
//
設(shè)置顏色停止點(過渡顏色所在位置)
gradient2.addColorStop(
0.25
,
'
white
'
);
gradient2.addColorStop(
0.5
,
'
purple
'
);
gradient2.addColorStop(
0.75
,
'
red
'
);
gradient2.addColorStop(
1.0
,
'
yellow
'
);
context2.fillStyle
=
gradient2;
context2.fillRect(
0
,
0
,myCanvas2.width,myCanvas2.height);
</
script
>
</
body
>
兩種顏色漸變函數(shù)的參數(shù)說明:
context.createLinearGradient(
x0
,
y0
,
x1
,
y1
);
| 參數(shù) | 描述 |
|---|---|
| x0 | 漸變開始點的 x 坐標(biāo) |
| y0 | 漸變開始點的 y 坐標(biāo) |
| x1 | 漸變結(jié)束點的 x 坐標(biāo) |
| y1 | 漸變結(jié)束點的 y 坐標(biāo) |
?
context.createRadialGradient(
x0
,
y0
,
r0
,
x1
,
y1
,
r1
);
| 參數(shù) | 描述 |
|---|---|
| x0 | 漸變的開始圓的 x 坐標(biāo) |
| y0 | 漸變的開始圓的 y 坐標(biāo) |
| r0 | 開始圓的半徑 |
| x1 | 漸變的結(jié)束圓的 x 坐標(biāo) |
| y1 | 漸變的結(jié)束圓的 y 坐標(biāo) |
| r1 | 結(jié)束圓的半徑 |
Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 createLinearGradient() 方法、createRadialGrradient()方法。
注釋:Internet Explorer 8 或更早的瀏覽器不支持 <canvas> 元素。
?
關(guān)于徑向漸變,我自己覺得最簡單的理解就是:
例如我們要徑向漸變一個圓,從圓心往四周顏色漸變,那么圓心所在的那個圓的坐標(biāo)就是(x1,y1) r1=0,漸變的大圓的坐標(biāo)(x2,y2) r2=r(r為圓的半徑)。
這是上面徑向漸變的代碼的效果截圖:
從圓心(blue)——>四周(yellow)
HTML5的漸變色 漸變的兩種類型 createLinearGradient 和createRadialGradient
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

