![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
25/01/2009, 09:59
|
![Avatar de Damin](http://static.forosdelweb.com/customavatars/avatar232445_1.gif) | | | Fecha de Ingreso: abril-2008 Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 9 meses Puntos: 0 | |
[AYUDA] Texto difuminado Que tal, tengo este codigo para que un texto vaya cambiando de color dinamicamente con un efecto difuminado.
La cuestion es que no se como llamar a la accion...
Código:
//SCRIPT PARA CREAR UN DEGRADADO VARIABLE
//VARIABLES PARA CONFIGURAR EL DEGRADADO. Configurar desde aqui
//color que se presenta al principio
color_inicio = new Array(227,200,50)
//color al que se tiende
color_fin = new Array(12,227,50)
//los pasos que se utilizaran para pasar de un color al otro
pasos = 50
//comportamiento 1=bucle_infinito 2=una_pasada_de_inicio_a_fin 4=una_pasada_de_inicio_a_fin_a_inicio 4=bucle_infinito_con_interrupcion
comportamiento = 4
//No tocar a no ser que se sepa lo que se hace
hexadecimal = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
var iteracion = 0
var color_actual = new Array(4)
//calculo el incremento en los que se tiene que hacer el degradado, para el numero de pasos determinado
diferencia = new Array(4)
for (i=0;i<4;i++)
diferencia[i] = (color_fin[i] - color_inicio[i]) / pasos
function convierteHexadecimal(num){
//alert (num)
var hexaDec = Math.floor(num/16)
var hexaUni = num - (hexaDec * 16)
return hexadecimal[hexaDec] + hexadecimal[hexaUni]
}
function degradado(){
iteracion += 1
//miro si estoy en el inicio > fin o en el fin > inicio
if (iteracion < pasos) {
//estoy al principo
for (i=0;i<4;i++)
color_actual[i] = (iteracion * diferencia[i]) + color_inicio[i]
}else{
//estoy volviendo
for (i=0;i<4;i++)
color_actual[i] = color_fin[i] - ((iteracion - pasos) * diferencia[i])
}
//alert(convierteHexadecimal(Math.round(color_actual[0])) + convierteHexadecimal(Math.round(color_actual[1])) + convierteHexadecimal(Math.round(color_actual[2])))
document.fgColor = convierteHexadecimal(Math.round(color_actual[0])) + convierteHexadecimal(Math.round(color_actual[1])) + convierteHexadecimal(Math.round(color_actual[2]))
//la llamo con un retardo
switch (comportamiento){
case 1:
if (iteracion == pasos * 2)
iteracion = 0
setTimeout("degradado()",1)
break;
case 2:
if(iteracion < pasos)
setTimeout("degradado()",1)
break;
case 3:
if(iteracion < pasos * 2)
setTimeout("degradado()",1)
break;
case 4:
if (iteracion == pasos * 2){
iteracion = 0
setTimeout("degradado()",10000)
}else{
setTimeout("degradado()",1)
}
break;
}
}
degradado()
</script>
O si alguien tiene algun otro codigo con el mismo efecto, se lo agradeceria!
saludos |