Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich veraltete SMIL-Animationen durch CSS- oder Web-Animationen ersetzen?

Wie kann ich veraltete SMIL-Animationen durch CSS- oder Web-Animationen ersetzen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 17:34:32384Durchsuche

How Can I Replace Deprecated SMIL Animations with CSS or Web Animations?

Hover-Effekt: CSS-Animation oder Web-Animationen

Problem:
SMILs Animations-Tag ist veraltet und CSS-Hover-Übergänge müssen veraltet sein implementiert, um es zu ersetzen.

Lösung:
Entfernen Sie die festgelegten Tags und fügen Sie CSS zur Pseudoklasse element_tpl:hover hinzu:

<code class="css">.element_tpl:hover {
    stroke-opacity: 0.5;
}</code>

Skalierungseffekt auf Ändern

Problem:
Animieren Sie das Element, um bei einer bestätigten Änderung ein paar Mal zu skalieren.

Lösung:
Berücksichtigen Sie Folgendes Folgende Optionen:

  1. CSS-Animation:Verwenden Sie CSS-Keyframes, um eine Skalierung zu erreichen:
<code class="css">@keyframes scale-animation {
    0% { transform: scale(1); }
    50% { transform: scale(1.12); }
    100% { transform: scale(1); }
}</code>

Anschließend wenden Sie die Animation auf das Element an:

<code class="css">.element_tpl {
    animation: scale-animation 0.5s infinite alternate;
}</code>
  1. Webanimationen:Verwenden Sie die Webanimations-API, um die Skalierung programmgesteuert zu steuern:
<code class="javascript">// Create a new animation
const animation = document.timeline.addAnimation();

// Define keyframes
const keyframes = [
    { transform: 'scale(1)', offset: 0 },
    { transform: 'scale(1.12)', offset: 0.5 },
    { transform: 'scale(1)', offset: 1 }
];

// Apply keyframes to the animation
animation.effect = keyframes;

// Target the element
animation.target = document.querySelector('.element_tpl');</code>

Beim Klicken nach oben und unten skalieren

Problem:
Animieren Sie das Element, um es beim Klicken zu vergrößern und zu verkleinern.

Lösung:

  1. CSS-Übergänge:Verwenden Sie CSS-Übergänge, um die Skalierungsänderungen bei Mousedown- und MouseUp-Ereignissen auszulösen:
<code class="css">.element_tpl {
    transition: transform 0.2s;
}

.element_tpl:active {
    transform: scale(1.1);
}</code>
  1. Webanimationen:Verwenden Sie die Webanimationen API, um das Klickereignis zu verarbeiten und das Element entsprechend zu skalieren:
<code class="javascript">// Add event listener
document.querySelector('.element_tpl').addEventListener('click', (event) => {

    // Create a new animation
    const animation = document.timeline.addAnimation();

    // Define keyframes
    const keyframes = [
        { transform: 'scale(1)', offset: 0 },
        { transform: 'scale(1.1)', offset: 0.2 },
        { transform: 'scale(1)', offset: 0.4 },
    ];

    // Apply keyframes to the animation
    animation.effect = keyframes;

    // Target the element
    animation.target = event.target;
});</code>

SMIL-Animationen speichern

Problem:
SMIL-Animationen nach CSS übertragen oder Webanimationen.

Lösung:
Verwenden Sie die von Eric Willigers erstellte SMIL-Polyfüllung: https://github.com/ericwilligers/svg-animation. Diese Polyfüllung konvertiert SMIL-Animationen in Webanimationen und bietet so eine alternative Möglichkeit, sie zu implementieren.

Das obige ist der detaillierte Inhalt vonWie kann ich veraltete SMIL-Animationen durch CSS- oder Web-Animationen ersetzen?. 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