Estoy tratando de animar un cambio en backgroundColor usando jQuery en el mouseover.
He comprobado algún ejemplo y parece que lo tengo bien, funciona con otras propiedades como fontSize, pero con backgroundColor obtengo y el error js "Invalid Property". El elemento con el que estoy trabajando es un div.
$(".usercontent").mouseover(function() {
$(this).animate({ backgroundColor: "olive" }, "slow");
});
¿Algunas ideas?
javascript
jquery
colors
jquery-animate
SteveCl
fuente
fuente
rgba(0, 0, 0, 0)
lugar del valor vacío / nulo esperado cuando no hay un color de fondo definido. Para "arreglar" esto, el elemento debe tener un color de fondo inicial.Respuestas:
El complemento de color es solo 4kb mucho más barato que la biblioteca UI. Por supuesto, querrás usar una versión decente del complemento y no alguna cosa vieja con errores que no maneje Safari y se bloquee cuando las transiciones son demasiado rápidas. Como no se suministra una versión minificada, puede probar varios compresores y hacer su propia versión mínima. YUI obtiene la mejor compresión en este caso, necesita solo 2317 bytes y, dado que es tan pequeño, aquí está:
fuente
v1
rama para obtener la versión anterior (que todavía funciona) pero es mucho más ligera.Tuve el mismo problema y lo solucioné incluyendo jQuery UI. Aquí está el guión completo:
fuente
Hazlo con CSS3-Transitions. El soporte es excelente (todos los navegadores modernos, incluso IE). Con Compass y SASS esto se hace rápidamente:
CSS puro:
Escribí un artículo en alemán sobre este tema: http://www.solife.cc/blog/animation-farben-css3-transition.html
fuente
Bitstorm tiene el mejor complemento de animación de color jquery que he visto. Es una mejora para el proyecto de color jquery. También es compatible con rgba.
http://www.bitstorm.org/jquery/color-animation/
fuente
Puede usar jQuery UI para agregar esta funcionalidad. Puede obtener justo lo que necesita, por lo que si desea animar el color, todo lo que tiene que incluir es el siguiente código. Obtuve si de la última interfaz de usuario jQuery (actualmente 1.8.14)
Es solo 1.43kb después de comprimir con YUI:
También puede animar colores usando transiciones CSS3, pero solo es compatible con navegadores modernos.
Usando la propiedad abreviada:
A diferencia de las transiciones regulares de JavaScript, las transiciones CSS3 son aceleradas por hardware y, por lo tanto, más suaves. Puede usar Modernizr, para averiguar si el navegador admite transiciones CSS3, si no lo hizo, puede usar jQuery como alternativa:
Recuerde usar stop () para detener la animación actual antes de comenzar una nueva, de lo contrario, cuando pase el elemento demasiado rápido, el efecto seguirá parpadeando durante un tiempo.
fuente
Para cualquiera que encuentre esto. Es mejor usar la versión de jQuery UI porque funciona en todos los navegadores. El complemento de color tiene problemas con Safari y Chrome. Solo funciona a veces.
fuente
Puedes usar 2 divs:
Podría poner un clon encima y desvanecer el original mientras desvanece el clon.
Cuando terminen los fundidos, restaure el original con el nuevo bg.
Ejemplo de jsFiddle
.toggleClass()
.offset()
.fadeIn()
.fadeOut()
fuente
Usé una combinación de transiciones CSS con JQuery para obtener el efecto deseado; obviamente, los navegadores que no admiten transiciones CSS no se animarán, pero es una opción liviana que funciona bien para la mayoría de los navegadores y para mis requisitos es una degradación aceptable.
Jquery para cambiar el color de fondo:
CSS usando la transición para desvanecer el cambio de color de fondo
fuente
En estos días, el complemento de color jQuery admite los siguientes colores con nombre:
fuente
Me gusta usar delay () para hacer esto, aquí hay un ejemplo:
Esto puede ser llamado por una función, con "elemento" siendo el elemento clase / nombre / etc. El elemento aparecerá instantáneamente con el fondo # FCFCD8, manténgalo presionado por un segundo y luego se desvanecerá en #EFEAEA.
fuente
Simplemente agregue el siguiente fragmento debajo de su script jquery y disfrute:
Ver el ejemplo
Referencia para más información
fuente
Me encontré con esta página con el mismo problema, pero con los siguientes problemas:
Con lo anterior que prácticamente descartó cada respuesta. Teniendo en cuenta que mi desvanecimiento de color era muy simple, utilicé el siguiente truco rápido:
Lo anterior crea un div temporal que nunca se coloca en el flujo de documentos. Luego uso la animación incorporada de jQuery para animar una propiedad numérica de ese elemento, en este caso
width
, que puede representar un porcentaje (0 a 100). Luego, utilizando la función de paso, transfiero esta animación numérica al color del texto con una simple valoración hexadecimal.Lo mismo podría haberse logrado con
setInterval
, pero al usar este método puede beneficiarse de los métodos de animación de jQuery, como.stop()
, y puede usareasing
yduration
.Obviamente, solo es útil para desvanecimientos de color simples, para conversiones de color más complicadas necesitará usar una de las respuestas anteriores, o codificar sus propias matemáticas de desvanecimiento de color :)
fuente
Prueba este:
Puedes ver un ejemplo aquí: http://jquerydemo.com/demo/jquery-animate-background-color.aspx
fuente
El complemento ColorBlend hace exactamente lo que quieres
http://plugins.jquery.com/project/colorBlend
Aquí está el código de mi destacado
fuente
Si desea animar su fondo usando solo la funcionalidad principal de jQuery, intente esto:
fuente
Intenta usarlo
fuente
Prueba este:
Forma revisada con efectos:
fuente