SVG 徑向漸變

上一節我們講的是線性漸變,本節我們來學習徑向漸變。徑向漸變可以理解爲以某一點爲圓心,顏色值沿半徑方向進行漸變。

如何創建徑向漸變

我們可以通過 <radialGradient> 元素創建一個 SVG 的徑向漸變。徑向漸變的使用其實和線性漸變差不多,也是嵌套在 <defs> 元素中使用,在使用時需要定義一個唯一的 id 名稱,然後通過 fill 屬性引用。

示例:

定義一個徑向漸變的圓:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>SVG學習(9xkd.com)</title>
        <link rel="styleSheet" type="text/css" href="./style.css">
    </head>
    <body>
        <svg width="500" height="300">
            <defs>
                <radialGradient id="radia" cx="50%" cy="50%" r="40%" fx="50%" fy="50%">
                    <stop offset="0%"  style="stop-color:rgb(110, 244, 248); "/>
                    <stop offset="70%"  style="stop-color:rgb(212, 129, 194); "/>
                    <stop offset="100%"  style="stop-color:rgb(243, 204, 132); "/>
                </radialGradient>
            </defs>
            <circle fill="url(#radia)" cx="200" cy="120" r="100" />
        </svg>
    </body>
</html>    

在瀏覽器中的演示效果:

上述代碼中在 <radialGradient> 元素中定義了一個id 屬性,方便後面的引用。<radialGradient> 內通過 <stop> 元素定義了三個顏色,<stop> 元素中的三個屬性在上一節中講到過。

除此之外, <radialGradient> 元素中的參數和 <linearGradient> 元素中的屬性還是有一些不同,如下所示:

屬性 描述
r 圓的半徑
cx 漸變的中心點 x 座標,要移動漸變的位置,可以改變這個值
cy 漸變的中心點 y 座標,要移動漸變的位置,可以改變這個值
fx 漸變的焦點 x 座標,可以用於移動漸變第一個顏色結點的位置
fy 漸變的焦點 y 座標,可以用於移動漸變第一個顏色結點的位置
fr 定義徑向漸變的焦點的半徑,默認值爲 0%
示例:

例如創建一個橢圓漸變:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>SVG學習(9xkd.com)</title>
        <link rel="styleSheet" type="text/css" href="./style.css">
    </head>
    <body>
        <svg width="500" height="300">
            <defs>
                <radialGradient id="radia" cx="40%" cy="50%" r="50%" fx="40%" fy="50%" >
                    <stop offset="0%"  style="stop-color:rgb(206, 88, 108); "/>
                    <stop offset="50%"  style="stop-color:rgb(80, 181, 206); "/>
                    <stop offset="70%"  style="stop-color:rgb(233, 199, 125); "/>
                    <stop offset="90%"  style="stop-color:rgb(189, 138, 236); "/>
                    <stop offset="100%"  style="stop-color:rgb(152, 252, 190); "/>
                </radialGradient>
            </defs>
            <ellipse fill="url(#radia)" cx="250" cy="100" rx="150" ry="100"></ellipse>
        </svg>
    </body>
</html>

在瀏覽器中的演示效果:

這個橢圓漸變中定義了五個顏色,然後通過 cxcy 確定漸變中心點位置,fxfy 確定漸變第一個顏色的結點的位置。

鏈接:https://www.9xkd.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章