Heim  >  Artikel  >  Web-Frontend  >  Warum beginnt meine SVG-Unterelementanimation am falschen Ursprung?

Warum beginnt meine SVG-Unterelementanimation am falschen Ursprung?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 03:00:01635Durchsuche

 Why Does My SVG Sub-Element Animation Start From the Wrong Origin?

CSS-Transformationsursprungsproblem bei SVG-Unterelementen

Bei der Arbeit mit SVGs kann es schwierig sein, den Transformationsursprung von Unterelementen zu steuern. Elemente. Standardmäßig verwenden CSS-Animationen und -Transformationen den gesamten SVG-Ursprung (0,0) und nicht die Mitte des spezifischen Elements, das animiert wird.

Das Problem verstehen

In In dem bereitgestellten Beispiel soll das Unterelement „animated-box“ von seiner Mitte aus skaliert werden. Die Animation beginnt jedoch am SVG-Ursprung (0,0), wodurch die Illusion entsteht, dass die Box „von links oben einfliegt“.

Lösung: Box transformieren

Um den Transformationsursprung relativ zum animierten Element festzulegen, können wir die Eigenschaft „transform-box“ verwenden:

<code class="css">transform-box: fill-box;</code>

Der Wert „fill-box“ weist den Browser an, die Unterelemente zu verwenden Begrenzungsrahmen (den Bereich, den er ausfüllt) als Transformationsursprung. Dadurch wird sichergestellt, dass die Animation wie beabsichtigt von der Mitte der „animierten Box“ skaliert wird.

Aktualisiertes Beispiel

Anwenden der Eigenschaft „transform-box“ auf unser Beispiel:

<code class="css">@keyframes scaleBox {
  from {transform: scale(0);}
  to {transform: scale(1);}
}
#animated-box {
  transform-box: fill-box;
  animation: scaleBox 2s infinite;
}</code>
<code class="html"><svg ...>
  ...
  <rect id="animated-box" ...>
  ...
</svg></code>

Jetzt wird die „animierte Box“ von ihrer Mitte aus skaliert, wodurch eine flüssigere und genauere Animation entsteht.

Das obige ist der detaillierte Inhalt vonWarum beginnt meine SVG-Unterelementanimation am falschen Ursprung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn