zoukankan      html  css  js  c++  java
  • 学习SVG系列(5):SVG渐变

    SVG渐变

    渐变是一种从一种颜色到另一种颜色的平滑过渡,可以把多个颜色的过渡应用到同一个元素。

    渐变有两种:

             Linear

             Redial

    线性渐变-<linearGradient>

    linearGradient元素用于定义线性渐变

    linearGradient标签必须嵌套在defs标签的内部。defs标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。

    线性渐变可以定义为水平、垂直或角渐变:

             1、当y1和y2相等,而x1和x2不同时,可创建水平渐变

             2、当x1和x2相等,而y1和y2不同时,可创建垂直渐变

             3、当x1和x2不同,且y1和y2不同时,可创建角形渐变

    实例1

    定义垂直线性渐变从黄色到蓝色的椭圆形,垂直渐变:

     

    SVG代码:

             <svg xmlns="http://www.w3.org/2000/svg">

            <defs>

                <linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%">

                    <stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

                    <stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

                </linearGradient>

            </defs>

            <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

        </svg>

    实例2

    定义水平线性渐变从黄色到蓝色的椭圆形,水平渐变:

     

    SVG代码:

    <svg xmlns="http://www.w3.org/2000/svg">

            <defs>

                <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">

                    <stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

                    <stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

                </linearGradient>

            </defs>

            <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

        </svg>

    实例3

    定义角形渐变从黄色变蓝色

     

    SVG代码:

    <svg xmlns="http://www.w3.org/2000/svg">

            <defs>

                <linearGradient id="grad1" x1="0%" y1="0%" x2="50%" y2="50%">

                    <stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

                    <stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

                </linearGradient>

            </defs>

            <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

        </svg>

    实例4

    放射性渐变-<radialGradient>

    定义一个放射性渐变从白色到红色椭圆:

     

    SVG代码:

    <svg height="400" width="400"  xmlns="http://www.w3.org/2000/svg">

            <defs>

                <radialGradient id="rad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%" >

                    <stop offset="0%" style="stop-color:rgb(255, 255, 255);stop-opacity:0;"  />

                    <stop offset="100%" style="stop-color:rgb(255, 0, 0);stop-opacity:1"/>

                </radialGradient>

            </defs>

            <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#rad1)"/>

        </svg>

    代码解析:

             1、radialGradient标签的id属性可为渐变定义一个唯一的名称

             2、CX、CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆

             3、渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个<stop>标签指定。offset属性用来定义渐变色开始和结束

             4、填充属性把ellipse元素链接到此渐变

  • 相关阅读:
    980不同路径III
    输入函数
    IDEA更新maven依赖包
    join()函数
    方差偏差困境
    np.bincount()函数
    72编辑距离
    741摘樱桃
    523连续的子数组和
    1306跳跃游戏III
  • 原文地址:https://www.cnblogs.com/laimeier/p/4146645.html
Copyright © 2011-2022 走看看