J’inclus un fichier d’image SVG sur ma page dans une balise d’ object
, comme ceci:
L’image en question est une carte du monde, je veux transformer la propriété de fill
lorsque la souris survole un group
. Dans ce cas, j’ai regroupé mon SVG par continent, de sorte que l’Amérique du Sud ressemble à ceci:
Je peux faire en sorte que la propriété fill
change lors du survol en utilisant le code CSS suivant en haut de mon document SVG:
#south_america path { transition: fill .4s ease; } #south_america:hover path { fill:white; }
Mais je ne peux pas obtenir la couleur de fondu avec une transition CSS, la couleur change juste instantanément, est-ce que quelqu’un peut éclairer ceci s’il vous plaît?
Afin de faire la transition / fondu, CSS a besoin d’une valeur de départ et d’une valeur de fin.
Comme vous définissez la couleur du chemin à l’aide de l’atsortingbut SVG fill="#FAFAFA"
, CSS ne le traite pas et la transition ne s’estompe pas.
Au lieu de cela, si vous utilisez CSS pour définir la couleur, la transition se comportera comme prévu
Donc, tout ce que je devais faire pour faire le travail de transition, c’est de donner à la #europe
une #europe
départ.
path { transition: fill .4s ease; } /* set fill for before and for during hover */ #europe path { fill: red; } #europe:hover path { fill: white; }
Voici un JSFiddle qui fonctionne.
Ou, le faire en ligne peut être plus pratique ( style=""
):
Juste pour que CSS puisse faire votre fondu, il doit gérer les valeurs de début et de fin en CSS / inline style (par opposition à utiliser l’atsortingbut SVG fill=
).