„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich veraltete SMIL-Animationen durch CSS- oder Web-Animationen ersetzen?

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

Veröffentlicht am 03.11.2024
Durchsuche:265

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 es sein implementiert, um es zu ersetzen.

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

.element_tpl:hover {
    stroke-opacity: 0.5;
}

Skalierungseffekt bei Änderung

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

Lösung:
Berücksichtigen Sie die folgenden Optionen:

  1. CSS-Animation: Verwenden Sie CSS-Keyframes, um eine Skalierung zu erreichen:
@keyframes scale-animation {
    0% { transform: scale(1); }
    50% { transform: scale(1.12); }
    100% { transform: scale(1); }
}

Dann wenden Sie die Animation auf das Element an:

.element_tpl {
    animation: scale-animation 0.5s infinite alternate;
}
  1. Webanimationen: Verwenden Sie die Webanimations-API, um die Skalierung programmgesteuert zu steuern:
// 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');

Beim Klicken nach oben und unten skalieren

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

Lösung:

  1. CSS-Übergänge: Verwenden Sie CSS-Übergänge, um die Skalierungsänderungen bei Mousedown- und Mouseup-Ereignissen auszulösen:
.element_tpl {
    transition: transform 0.2s;
}

.element_tpl:active {
    transform: scale(1.1);
}
  1. Webanimationen: Verwenden Sie die Webanimations-API, um das Klickereignis zu verarbeiten und das Element entsprechend zu skalieren:
// 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;
});

SMIL-Animationen speichern

Problem:
SMIL-Animationen in CSS oder Web-Animationen übertragen.

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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3