Maison > interface Web > tutoriel CSS > Comment remplacer les animations SMIL SVG obsolètes par des animations CSS ou Web ?

Comment remplacer les animations SMIL SVG obsolètes par des animations CSS ou Web ?

Mary-Kate Olsen
Libérer: 2024-10-27 07:17:29
original
885 Les gens l'ont consulté

How to Replace Deprecating SMIL SVG Animations with CSS or Web Animations?

Dépréciation de l'animation SMIL SVG et remplacement par des animations CSS ou Web

En raison de la dépréciation de l'animation SMIL SVG, des approches alternatives utilisant CSS ou Les animations Web sont recommandées pour de meilleures performances et compatibilité dans les navigateurs modernes. Voici une explication sur la façon de convertir les animations SMIL mentionnées :

1. Effet de survol au survol de la souris

Remplacez les balises d'animation SMIL par une pseudo-classe de survol CSS pour obtenir le même effet.

/* Original SMIL */
<set attributeName="stroke-opacity" .../>
<set attributeName="stroke-opacity" .../>
/* CSS Equivalent */
.element_tpl:hover {
  stroke-opacity: 0.5;
}
Copier après la connexion

2. Mise à l'échelle de l'animation après modification validée

Pour implémenter cet effet sans utiliser la balise animer, vous pouvez définir la propriété d'échelle initiale dans votre modèle, puis utiliser des transitions CSS pour animer la mise à l'échelle.

/* Original SMIL */
<animateTransform .../>
/* CSS Equivalent */
@media (all) {
  .element_tpl {
    transform: scale(1, 1.375);
    transition: transform 0.5s ease-in-out;
  }
  .element_tpl:hover {
    transform: scale(1.12, 1.375);
  }
}
Copier après la connexion

3. Augmenter et réduire au clic

Pour cet effet, une combinaison de transitions CSS et de gestionnaires d'événements JavaScript peut être utilisée.

/* Original SMIL */
<animateTransform .../>
<animateTransform .../>
/* CSS Equivalent */
@media (all) {
  .element_tpl {
    transition: transform 0.2s ease-in-out;
  }
  .element_tpl:active {
    transform: scale(1.1);
  }
}
/* JavaScript Event Handlers */
const element = document.querySelector('.element_tpl');
element.addEventListener('mousedown', () => { element.classList.add('active'); });
element.addEventListener('mouseup', () => { element.classList.remove('active'); });
Copier après la connexion

Exemple de travail

Voici un exemple fonctionnel présentant les effets CSS convertis : https://jsfiddle.net/7e2jeet0/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal