Heim > Web-Frontend > CSS-Tutorial > 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
Freigeben: 2024-10-25 17:34:32
Original
521 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

<code class="css">.element_tpl {
    animation: scale-animation 0.5s infinite alternate;
}</code>
Nach dem Login kopieren
  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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
  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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage