Přechody SVG – lineární


Přechody SVG

Gradient je plynulý přechod z jedné barvy do druhé. Kromě toho lze na stejný prvek použít několik barevných přechodů.

V SVG existují dva hlavní typy přechodů:

  • Lineární
  • Radiální

SVG Lineární Gradient - <linearGradient>

Prvek <linearGradient> se používá k definování lineárního přechodu.

Element <linearGradient> musí být vnořen do značky <defs>. Tag <defs> je zkratka pro definice a obsahuje definici speciálních prvků (jako jsou přechody).

Lineární přechody lze definovat jako horizontální, vertikální nebo úhlové přechody:

  • Vodorovné přechody se vytvoří, když jsou y1 a y2 stejné a x1 a x2 se liší
  • Vertikální gradienty se vytvoří, když jsou x1 a x2 stejné a y1 a y2 se liší
  • Úhlové přechody se vytvoří, když se x1 a x2 liší a y1 a y2 se liší

Příklad 1

Definujte elipsu s vodorovným lineárním přechodem od žluté k červené:

Sorry, your browser does not support inline SVG.

Zde je kód SVG:

Příklad

<svg height="150" width="400">
  <defs>
    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
      <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
    </linearGradient>
  </defs>
  <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" />
</svg>

Vysvětlení kódu:

  • Atribut id tagu <linearGradient> definuje jedinečný název přechodu
  • Atributy x1, x2, y1,y2 tagu <linearGradient> definují počáteční a koncovou polohu přechodu
  • Barevný rozsah pro přechod může být složen ze dvou nebo více barev. Každá barva je specifikována tagem <stop>. Atribut offset se používá k definování, kde začíná a končí barva přechodu
  • Atribut výplně spojuje prvek elipsy s přechodem


Příklad 2

Definujte elipsu se svislým lineárním přechodem od žluté k červené:

Sorry, your browser does not support inline SVG.

Zde je kód SVG:

Příklad

<svg height="150" width="400">
  <defs>
    <linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
      <stop offset="100%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
    </linearGradient>
  </defs>
  <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad2)" />
</svg>

Příklad 3

Definujte elipsu s vodorovným lineárním přechodem od žluté po červenou a přidejte text do elipsy:

SVG Sorry, your browser does not support inline SVG.

Zde je kód SVG:

Příklad

<svg height="150" width="400">
  <defs>
    <linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
      <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
    </linearGradient>
  </defs>
  <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad3)" />
  <text fill="#ffffff" font-size="45" font-family="Verdana" x="150" y="86">
  SVG</text>
</svg>

Vysvětlení kódu:

  • Prvek <text> se používá k přidání textu