J'essaie d'animer un changement de backgroundColor en utilisant jQuery au survol de la souris.
J'ai vérifié un exemple et je semble avoir raison, cela fonctionne avec d'autres propriétés comme fontSize, mais avec backgroundColor j'obtiens et l'erreur js "Propriété non valide". L'élément avec lequel je travaille est un div.
$(".usercontent").mouseover(function() {
$(this).animate({ backgroundColor: "olive" }, "slow");
});
Des idées?
javascript
jquery
colors
jquery-animate
SteveCl
la source
la source
rgba(0, 0, 0, 0)
au lieu de la valeur vide / nulle attendue lorsqu'aucune couleur d'arrière-plan n'est définie. Pour "corriger" cela, l'élément doit avoir une couleur d'arrière-plan initiale.Réponses:
Le plugin couleur n'est que de 4 Ko, donc beaucoup moins cher que la bibliothèque d'interface utilisateur. Bien sûr, vous voudrez utiliser une version décente du plugin et non une vieille chose buggy qui ne gère pas Safari et se bloque lorsque les transitions sont trop rapides. Puisqu'une version minifiée n'est pas fournie, vous pouvez tester différents compresseurs et créer votre propre version min. YUI obtient la meilleure compression dans ce cas, ne nécessitant que 2317 octets et comme il est si petit - le voici:
la source
v1
branche pour obtenir l'ancienne version (qui fonctionne toujours) mais est beaucoup plus légère.J'ai eu le même problème et l'ai résolu en incluant l'interface utilisateur jQuery. Voici le script complet:
la source
Faites-le avec CSS3-Transitions. Le support est excellent (tous les navigateurs modernes, même IE). Avec Compass et SASS, cela se fait rapidement:
CSS pur:
J'ai écrit un article allemand sur ce sujet: http://www.solife.cc/blog/animation-farben-css3-transition.html
la source
Bitstorm a le meilleur plugin d'animation de couleur jquery que j'ai vu. C'est une amélioration du projet de couleur jquery. Il prend également en charge rgba.
http://www.bitstorm.org/jquery/color-animation/
la source
Vous pouvez utiliser jQuery UI pour ajouter cette fonctionnalité. Vous pouvez saisir exactement ce dont vous avez besoin, donc si vous souhaitez animer la couleur, tout ce que vous avez à inclure est le code suivant. J'ai obtenu si de la dernière interface utilisateur jQuery (actuellement 1.8.14)
Il ne fait que 1,43 Ko après compression avec YUI:
Vous pouvez également animer des couleurs à l'aide de transitions CSS3, mais il n'est pris en charge que par les navigateurs modernes.
Utilisation de la propriété raccourcie:
Contrairement aux transitions JavaScript standard, les transitions CSS3 sont accélérées matériellement et donc plus fluides. Vous pouvez utiliser Modernizr, pour savoir si le navigateur prend en charge les transitions CSS3, sinon, vous pouvez utiliser jQuery comme solution de rechange:
N'oubliez pas d'utiliser stop () pour arrêter l'animation en cours avant d'en démarrer une nouvelle, sinon lorsque vous passez trop rapidement sur l'élément, l'effet continue de clignoter pendant un certain temps.
la source
Pour tous ceux qui trouvent cela. Il vaut mieux utiliser la version jQuery UI car elle fonctionne sur tous les navigateurs. Le plugin couleur a des problèmes avec Safari et Chrome. Cela ne fonctionne que parfois.
la source
Vous pouvez utiliser 2 divs:
Vous pouvez mettre un clone dessus et fondre l'original tout en fondant le clone.
Une fois les fondus terminés, restaurez l'original avec le nouveau bg.
Exemple jsFiddle
.toggleClass()
.offset()
.fadeIn()
.fadeOut()
la source
J'ai utilisé une combinaison de transitions CSS avec JQuery pour l'effet souhaité; Évidemment, les navigateurs qui ne prennent pas en charge les transitions CSS ne s'animeront pas, mais c'est une option légère qui fonctionne bien pour la plupart des navigateurs et pour mes besoins est une dégradation acceptable.
Jquery pour changer la couleur de fond:
CSS utilisant la transition pour atténuer le changement de couleur d'arrière-plan
la source
De nos jours, le plug-in de couleur jQuery prend en charge les couleurs nommées suivantes:
la source
J'aime utiliser delay () pour y arriver, voici un exemple:
Cela peut être appelé par une fonction, "élément" étant la classe d'élément / nom / etc. L'élément apparaîtra instantanément avec l'arrière-plan # FCFCD8, maintiendra pendant une seconde, puis se fondra dans #EFEAEA.
la source
Ajoutez simplement l'extrait de code suivant sous votre script jquery et profitez:
Voir l'exemple
Référence pour plus d'informations
la source
Je suis tombé sur cette page avec le même problème, mais les problèmes suivants:
Avec ce qui précède, cela a pratiquement exclu toutes les réponses. Étant donné que ma décoloration était très simple, j'ai plutôt utilisé le hack rapide suivant:
Ce qui précède crée un div temporaire qui n'est jamais placé dans le flux de documents. J'utilise ensuite l'animation intégrée de jQuery pour animer une propriété numérique de cet élément - dans ce cas
width
- qui peut représenter un pourcentage (0 à 100). Ensuite, en utilisant la fonction step, je transfère cette animation numérique à la couleur du texte avec une simple cacluation hexadécimale.La même chose aurait pu être obtenue avec
setInterval
, mais en utilisant cette méthode, vous pouvez bénéficier des méthodes d'animation de jQuery - comme.stop()
- et vous pouvez utilisereasing
etduration
.De manière évidente, cela n'est utile que pour les fondus de couleur simples, pour des conversions de couleurs plus compliquées, vous devrez utiliser l'une des réponses ci-dessus - ou coder vos propres calculs de fondu de couleur :)
la source
Essaye celui-là:
vous pouvez prévisualiser l'exemple ici: http://jquerydemo.com/demo/jquery-animate-background-color.aspx
la source
Le plug-in ColorBlend fait exactement ce que vous voulez
http://plugins.jquery.com/project/colorBlend
Voici le code de mon point culminant
la source
Si vous ne souhaitez pas animer votre arrière-plan en utilisant uniquement la fonctionnalité jQuery principale, essayez ceci:
la source
Essayez de l'utiliser
la source
Essaye celui-là:
Manière révisée avec effets:
la source