Utilisez des transitions CSS3 avec des arrière-plans dégradés
P粉217629009
2023-08-23 21:25:42
<p>J'essaie d'utiliser CSS pour effectuer une transition sur une vignette au survol de la souris afin que l'arrière-plan s'efface au survol. La conversion ne fonctionne pas, mais si je la change simplement en <code>rgba()<!--code-->value, cela fonctionne bien. Ne prend-il pas en charge les dégradés ? J'ai également essayé d'utiliser une image et cela ne convertit pas non plus l'image. </code></p><code>
<p>Je sais que c'est possible parce que quelqu'un l'a fait dans un autre post, mais je ne sais pas exactement comment. Toute aide> Voici quelques CSS qui peuvent être utilisés : </p>
<pre class="brush:css;toolbar:false;">#container div a {
-webkit-transition : arrière-plan linéaire 0,2 s ;
-moz-transition : arrière-plan linéaire 0,2 s ;
-o-transition : arrière-plan linéaire 0,2 s ;
transition : arrière-plan linéaire 0,2 s ;
position : absolue ;
largeur : 200 px ;
hauteur : 150px ;
bordure : 1px #000 solide ;
marge : 30px ;
indice z : 2
}
#conteneur div a:hover {
arrière-plan : -webkit-gradient(radial, 100 75, 100, 100 75, 0, from(rgba(0, 0, 0, .7)), to(rgba(0, 0, 0, .4)))
}
≪/pré>
<p><br /></p></code>
Une solution consiste à transformer la position de l'arrière-plan pour créer un effet de changement de dégradé : http://sapphion.com/2011/10/css3-Gradient transition et position d'arrière-plan/
Les dégradés ne prennent pas encore en charge les transitions (bien que la spécification actuelle indique qu'ils devraient prendre en charge les transitions de type dégradé à dégradé via interpolation.).
Si vous souhaitez un effet de fondu avec un dégradé d'arrière-plan, vous devez définir la opacité sur l'élément conteneur et "transitionner" l'opacité.
(Il existe déjà certaines versions de navigateur qui prennent en charge les transitions dégradées (par exemple IE10. J'ai testé les transitions dégradées dans IE en 2016 et elles semblaient fonctionner à l'époque, mais mon code de test ne fonctionne plus.)
Mise à jour : octobre 2018 Il est désormais confirmé que les transitions dégradées avec une nouvelle syntaxe sans préfixe [par exemple Radial-gradient(...)] fonctionnent (à nouveau ?) sur Microsoft Edge 17.17134. Je ne sais pas quand cela a été ajouté. Ne fonctionne toujours pas sur les derniers Firefox et Chrome/Windows 10.
Mise à jour : décembre 2021 La solution de contournement @property fonctionne désormais dans les navigateurs récents basés sur Chromium (mais ne fonctionne pas dans Firefox). Voir (et voter) la réponse de @mahozad ci-dessous (ou YMMV ci-dessus).