Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie kann ich meine veralteten SMIL-SVG-Animationen migrieren, um CSS und Webanimationen zu verwenden?

Patricia Arquette
Freigeben: 2024-10-25 20:52:02
Original
856 Leute haben es durchsucht

How can I migrate my deprecated SMIL SVG Animations to use CSS and Web Animations?

Migration veralteter SMIL-SVG-Animationen zu CSS und Webanimationen

Einführung

Mit der veralteten SMIL-Animationen ist es notwendig geworden, alternative Methoden zu finden zum Erstellen von SVG-Animationen. Dieser Artikel untersucht die Verwendung von CSS und Webanimationen als Ersatz für SMIL-Animationen und konzentriert sich dabei auf gängige Szenarien wie Hover-Effekte, Elementskalierung und Umschalten zwischen Zuständen.

Implementieren eines Hover-Effekts mit CSS

Um einen Hover-Effekt beim Überfahren mit der Maus mithilfe von CSS zu implementieren, können Sie den vorhandenen SMIL-Code wie folgt ändern:

.element_tpl:hover {
    stroke-opacity: 0.5;
}
Nach dem Login kopieren

Dadurch wird der Hover-Effekt angewendet, indem die Strichdeckkraft verringert wird, wenn der Cursor über dem Element schwebt.

Ein Element mit CSS oder Webanimationen skalieren

Um ein Element nach einer Änderung mehrmals zu skalieren, können Sie CSS oder Webanimationen verwenden. Hier ist ein CSS-Ansatz:

.element_tpl {
    animation: scaleAnimation 0.5s infinite;
}

@keyframes scaleAnimation {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.12);
    }
    100% {
        transform: scale(1);
    }
}
Nach dem Login kopieren

Alternativ können Sie Webanimationen verwenden:

let element = document.querySelector('.element_tpl');
let animation = element.animate([
    { transform: 'scale(1)' },
    { transform: 'scale(1.12)' },
    { transform: 'scale(1)' }
], {
    duration: 500,
    iterations: Infinity
});
Nach dem Login kopieren

Vergrößern und Verkleinern animieren mit CSS oder Webanimationen

Zum Animieren Ein Element, das beim Klicken vergrößert und verkleinert wird. Sie können entweder CSS oder Webanimationen verwenden. Hier ist der CSS-Ansatz:

.element_tpl:active {
    transform: scale(1.1);
}
Nach dem Login kopieren

Für Webanimationen:

let element = document.querySelector('.element_tpl');
element.addEventListener('click', () => {
    element.animate([
        { transform: 'scale(1)' },
        { transform: 'scale(1.1)' },
        { transform: 'scale(1)' }
    ], {
        duration: 400,
        iterations: 1
    });
});
Nach dem Login kopieren

SMIL-Animationen mit einer Polyfüllung beibehalten

Während die SMIL-Unterstützung in Chrome durch eine Polyfüllung ersetzt wurde, Es kann weiterhin verwendet werden, um vorhandene Animationen beizubehalten. Das SMIL-Polyfill von Eric Willigers, verfügbar unter https://github.com/ericwilligers/svg-animation, kann zum Ausführen von SMIL-Animationen in modernen Browsern verwendet werden, die diese nicht mehr nativ unterstützen.

Das obige ist der detaillierte Inhalt vonWie kann ich meine veralteten SMIL-SVG-Animationen migrieren, um CSS und Webanimationen zu verwenden?. 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