2011-09-11 30 views
6

Estoy usando jquery color para generar colores aleatorios. Me gustaría que estos colores aparezcan cuando el usuario pasa el mouse sobre las etiquetas de los botones de opción.jquery random color hover

Siguiendo el ejemplo de this site, pensé que podría probar:

spectrum(); 

function spectrum(){ 

var hue = ('lots of stuff here that generates random hue -- code on example webpage') 

$('label').hover(function() { 
    $(this).animate({ color: hue }, 10000) }); 

spectrum(); 

} 

Mi selector de vuelo estacionario no está funcionando y todo se queda su color predeterminado. Obviamente estoy torciendo esto de alguna manera, pero no tengo suficiente experiencia para entender lo que está pasando mal. ¿Alguna sugerencia?

+0

Por favor, publique su HTML y CSS. No hay suficiente código aquí para saber qué está pasando mal. – maxedison

+0

¿qué necesitas? no hay css, excepto lo que proviene del cuerpo. y el html es solo un grupo de etiquetas de entrada. – yoshi

Respuesta

16

Prueba esto:

$(document).ready(function() { 
    $('label').hover(function() { 
     var hue = 'rgb(' 
      + (Math.floor(Math.random() * 256)) + ',' 
      + (Math.floor(Math.random() * 256)) + ',' 
      + (Math.floor(Math.random() * 256)) + ')'; 
     $(this).stop().animate({ color: hue }, 500); 
    },function() { 
     $(this).stop().animate({ color: '#000' }, 500); 
    }); 
}); 

Véase también mi jsfiddle.

=== === ACTUALIZACIÓN

function startAnimation(o) { 
    var hue = 'rgb(' 
     + (Math.floor(Math.random() * 256)) + ',' 
     + (Math.floor(Math.random() * 256)) + ',' 
     + (Math.floor(Math.random() * 256)) + ')'; 
    $(o.currentTarget).animate({ color: hue }, 500, function() { 
     startAnimation(o); 
    }); 
} 

$(document).ready(function() { 
    $('label').hover(
     startAnimation, 
     function() { 
      $(this).stop().animate({ color: '#000' }, 500); 
     } 
    ); 
}); 

ver mis actualizan jsfiddle.

+0

por lo que esto es muy parecido a lo que quiero lograr. pero en lugar de ser aleatorio sobre cada vuelo estacionario, quiero que el color cambie aleatoriamente mientras esté suspendido. así que por ejemplo: si un color cambia cada segundo y vuelo por tres segundos, el usuario debería ver tres colores ... hmm me pregunto qué pasaría si sacara las paradas – yoshi

+0

ah, está bien. por lo que el complemento de color jquery llama a una función que "transiciones" de un color a otro. y para seguir cambiando de color, se llama recursivamente a sí mismo. dejé caer este script allí y funciona! pero todavía hay algo mal, ya que requiere una gran cantidad de poder de procesamiento y el sitio web se bloquea cada vez que vuelo – yoshi

+0

sí !! ¿podrías explicarme qué está haciendo el código ure? ¿Qué significa para startAnimation pasar "o" hacia abajo? – yoshi

0

El principal problema que jQuery no admite la animación de color. Más resultados se pueden encontrar jQuery: animate text color for input field?

+0

No creo que tenga problemas para generar un color aleatorio. Está APLICANDO ese color con el plugin jquery.color que le está causando problemas. – maxedison

+0

Entendido. Gracias. – Samich

0

$('label').hover agregarán un evento mouseover/mouseout a la etiqueta. Estás haciendo esto infinitamente, estás llamando espectro una y otra vez. Pruebe esto en su lugar.

$('label').hover(function() { 
    (function anim() { 
     var hue = //hue stuff 
     $(this).animate({ 
      color: hue 
     }, 10000, function() { 
      anim(); 
     }); 
    })(); 
}, function() { 
    $(this).animate({ 
     color: //original color 
    }, 1000); 
});