SVG animatsiya


ULASHISH

SVG animatsiya

SVG elementlarini animatsiya qilish mumkin.

SVG’da SVG grafikasining qiymatlarini o‘rnatadigan yoki uni animatsiya qiladigan to‘rtta animatsiya elementi bor:

  • <set>
  • <animate>
  • <animateTransform>
  • <animateMotion>

SVG <set>

<set> elementi atribut qiymatini belgilangan davomiylik uchun o‘rnatadi.

Ushbu misolda radiusi 25 dan boshlanadigan qizil aylana yaratamiz, 3 soniyadan so‘ng radius 50 ga o‘rnatiladi:

Sorry, your browser does not support inline SVG.

SVG kodi quyidagicha:

Misol

<svg width="200" height="100" xmlns="http://www.w3.org/2000/svg">   <circle cx="50" cy="50" r="25" style="fill:red;">   <set attributeName="r" to="50" begin="3s" /> </svg>
O‘zingiz sinab ko‘ring »

Kod izohi:

  • <set> elementidagi attributeName atributi qaysi atribut o‘zgartirilishini belgilaydi
  • <set> elementidagi to atributi atribut uchun yangi qiymatni belgilaydi
  • <set> elementidagi begin atributi animatsiya qachon boshlanishini belgilaydi

SVG <animate>

<animate> elementi elementning atributini animatsiya qiladi.

<animate> elementi maqsadli element ichiga joylashtirilishi kerak.

Ushbu misolda qizil aylana yaratamiz. cx atributini 50 dan 90% gacha animatsiya qilamiz. Bu aylana chapdan o‘ngga harakatlanishini bildiradi:

Sorry, your browser does not support inline SVG.

SVG kodi quyidagicha:

Misol

<svg width="100%" height="100" xmlns="http://www.w3.org/2000/svg">   <circle cx="50" cy="50" r="50" style="fill:red;">     <animate       attributeName="cx"       begin="0s"       dur="8s"       from="50"       to="90%"       repeatCount="indefinite" />   </circle> </svg>
O‘zingiz sinab ko‘ring »

Kod izohi:

  • attributeName atributi qaysi atribut animatsiya qilinishini belgilaydi
  • begin atributi animatsiya qachon boshlanishini belgilaydi
  • dur atributi animatsiya davomiyligini belgilaydi
  • from atributi boshlang‘ich qiymatni belgilaydi
  • to atributi oxirgi qiymatni belgilaydi
  • repeatCount atributi animatsiya necha marta takrorlanishini belgilaydi

Freeze bilan SVG <animate>

Ushbu misolda qizil aylana oxirgi pozitsiyasiga yetganda (boshlang‘ich pozitsiyaga sakrab qaytish o‘rniga) muzlab (to‘xtab) qolishini istaymiz:

Sorry, your browser does not support inline SVG.

SVG kodi quyidagicha:

Misol

<svg width="100%" height="100" xmlns="http://www.w3.org/2000/svg">   <circle cx="50" cy="50" r="50" style="fill:red;">     <animate       attributeName="cx"       begin="0s"       dur="8s"       from="50"       to="90%"       fill="freeze" />   </circle> </svg>
O‘zingiz sinab ko‘ring »

Kod izohi:

  • fill="freeze" atributi animatsiya oxirgi pozitsiyasiga yetganda muzlab qolishini belgilaydi


SVG <animateTransform>

<animateTransform> elementi maqsadli elementdagi transform atributini animatsiya qiladi.

<animateTransform> elementi maqsadli element ichiga joylashtirilishi kerak.

Ushbu misolda aylanadigan qizil to‘rtburchak yaratamiz:

Sorry, your browser does not support inline SVG.

SVG kodi quyidagicha:

Misol

<svg width="200" height="180" xmlns="http://www.w3.org/2000/svg">   <rect x="30" y="30" height="110" width="110" style="stroke:green;fill:red">     <animateTransform       attributeName="transform"       begin="0s"       dur="10s"       type="rotate"       from="0 85 85"       to="360 85 85"       repeatCount="indefinite" />   </rect> </svg>
O‘zingiz sinab ko‘ring »

Kod izohi:

  • attributeName atributi <rect> elementining transform atributini animatsiya qiladi
  • begin atributi animatsiya qachon boshlanishini belgilaydi
  • dur atributi animatsiya davomiyligini belgilaydi
  • type atributi transformatsiya turini belgilaydi
  • from atributi boshlang‘ich qiymatni belgilaydi
  • to atributi oxirgi qiymatni belgilaydi
  • repeatCount atributi animatsiya necha marta takrorlanishini belgilaydi

SVG <animateMotion>

<animateMotion> elementi element harakat yo‘li bo‘ylab qanday harakatlanishini belgilaydi.

<animateMotion> elementi maqsadli element ichiga joylashtirilishi kerak.

Ushbu misolda to‘rtburchak va matn yaratamiz. Ikkala elementda ham bir xil yo‘lga ega <animateMotion> elementi bor:

It's SVG! Sorry, your browser does not support inline SVG.

SVG kodi quyidagicha:

Misol

<svg width="100%" height="150" xmlns="http://www.w3.org/2000/svg">   <rect x="45" y="18" width="155" height="45" style="stroke:green;fill:none;">     <animateMotion       path="M0,0 q60,100 100,0 q60,-20 100,0"       begin="0s"       dur="10s"       repeatCount="indefinite" />   </rect>   <text x="50" y="50" style="font-family:Verdana;font-size:32">It's SVG!     <animateMotion       path="M0,0 q60,100 100,0 q60,-20 100,0"       begin="0s"       dur="10s"       repeatCount="indefinite" /> </text> </svg>
O‘zingiz sinab ko‘ring »

Kod izohi:

  • path atributi animatsiya yo‘lini belgilaydi
  • begin atributi animatsiya qachon boshlanishini belgilaydi
  • dur atributi animatsiya davomiyligini belgilaydi
  • repeatCount atributi animatsiya necha marta takrorlanishini belgilaydi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!