Foros del Web » Programando para Internet » Javascript » Frameworks JS »

FadeIn-FadeOut para borde de input?

Estas en el tema de FadeIn-FadeOut para borde de input? en el foro de Frameworks JS en Foros del Web. Hola, ante todo, gracias por la ayuda Acabo de escribir un formulario y estoy haciendo las comprovaciones tipicas: Maximo de caracteres, validos o no validos, ...
  #1 (permalink)  
Antiguo 20/05/2010, 12:45
 
Fecha de Ingreso: febrero-2010
Mensajes: 39
Antigüedad: 14 años, 3 meses
Puntos: 2
FadeIn-FadeOut para borde de input?

Hola, ante todo, gracias por la ayuda

Acabo de escribir un formulario y estoy haciendo las comprovaciones tipicas: Maximo de caracteres, validos o no validos, si contiene o no contiene @, si esta especificado o no http etc...

El tema esque me gustaria, que al haber un error en uno de los campos el borde de un input type text cambiara a rojo, pero no de golpe, sino apareciendo lentamente. Algo asi como el fade in y el fadeout para hacer aparecer y desaparecer elementos, pero cambiando el color.

una ayudita?
  #2 (permalink)  
Antiguo 21/05/2010, 04:59
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: FadeIn-FadeOut para borde de input?

Hola Dunnow,

Supongo que no querras usar un framework para hacer la validacion y la futura visualizacion de los errores, jeje... a mi tampoco me gustan mucho... pero bueno te ahorras un curro. De todos modos mira:

Código Javascript:
Ver original
  1. //change color
  2.                     //iniciate
  3.                         function colorFade(id,element,start,end,steps,speed)
  4.                             {
  5.                                 var startrgb,endrgb,er,eg,eb,step,rint,gint,bint,step;
  6.                                 if(document.getElementById(id))
  7.                                     {
  8.                                         var target = document.getElementById(id);
  9.                                     }
  10.                                 else
  11.                                     {
  12.                                         var target = id;
  13.                                     }
  14.                                
  15.                                
  16.                                 steps = steps || 20;
  17.                                 speed = speed || 20;
  18.                                 clearInterval(target.timer);
  19.                                 endrgb = colorConv(end);
  20.                                 er = endrgb[0];
  21.                                 eg = endrgb[1];
  22.                                 eb = endrgb[2];
  23.                                 if(!target.r) {
  24.                                 startrgb = colorConv(start);
  25.                                 r = startrgb[0];
  26.                                 g = startrgb[1];
  27.                                 b = startrgb[2];
  28.                                 target.r = r;
  29.                                 target.g = g;
  30.                                 target.b = b;
  31.                                 }
  32.                                 rint = Math.round(Math.abs(target.r-er)/steps);
  33.                                 gint = Math.round(Math.abs(target.g-eg)/steps);
  34.                                 bint = Math.round(Math.abs(target.b-eb)/steps);
  35.                                 if(rint == 0) { rint = 1 }
  36.                                 if(gint == 0) { gint = 1 }
  37.                                 if(bint == 0) { bint = 1 }
  38.                                 target.step = 1;
  39.                                 target.timer = setInterval( function() { animateColor(id,element,steps,er,eg,eb,rint,gint,bint) }, speed);
  40.                             }
  41.                     // incrementally close the gap between the two colors //
  42.                         function animateColor(id,element,steps,er,eg,eb,rint,gint,bint)
  43.                             {
  44.                                 if(document.getElementById(id))
  45.                                     {
  46.                                         var target = document.getElementById(id);
  47.                                     }
  48.                                 else
  49.                                     {
  50.                                         var target = id;
  51.                                     }
  52.                                
  53.                                 var color;
  54.                                 if(target.step <= steps) {
  55.                                 var r = target.r;
  56.                                 var g = target.g;
  57.                                 var b = target.b;
  58.                                 if(r >= er) {
  59.                                 r = r - rint;
  60.                                 } else {
  61.                                 r = parseInt(r) + parseInt(rint);
  62.                                 }
  63.                                 if(g >= eg) {
  64.                                 g = g - gint;
  65.                                 } else {
  66.                                 g = parseInt(g) + parseInt(gint);
  67.                                 }
  68.                                 if(b >= eb) {
  69.                                 b = b - bint;
  70.                                 } else {
  71.                                 b = parseInt(b) + parseInt(bint);
  72.                                 }
  73.                                 color = 'rgb(' + r + ',' + g + ',' + b + ')';
  74.                                 if(element == 'background') {
  75.                                 target.style.backgroundColor = color;
  76.                                 } else if(element == 'border') {
  77.                                 target.style.borderColor = color;
  78.                                 } else {
  79.                                 target.style.color = color;
  80.                                 }
  81.                                 target.r = r;
  82.                                 target.g = g;
  83.                                 target.b = b;
  84.                                 target.step = target.step + 1;
  85.                                 } else {
  86.                                 clearInterval(target.timer);
  87.                                 color = 'rgb(' + er + ',' + eg + ',' + eb + ')';
  88.                                 if(element == 'background') {
  89.                                 target.style.backgroundColor = color;
  90.                                 } else if(element == 'border') {
  91.                                 target.style.borderColor = color;
  92.                                 } else {
  93.                                 target.style.color = color;
  94.                                 }
  95.                                 }
  96.                             }
  97.                     // convert the color to rgb from hex //
  98.                         function colorConv(color)
  99.                             {
  100.                                 var rgb = [parseInt(color.substring(0,2),16),
  101.                                 parseInt(color.substring(2,4),16),
  102.                                 parseInt(color.substring(4,6),16)];
  103.                                 return rgb;
  104.                             }

Te explico como chuta, primero debes seleccionar el elemento que deseas cambiar, luego el parametro que deseas cambiar, si es background pues el fondo, si es border pues el borde, tu sabras!... jeje. Luego le dices los colores.

Aunque veas mucho codigo... es una tonteria... solo que aunque no lo creas es un rollo morrocotudo hacerlo!.
Código Javascript:
Ver original
  1. colorFade(tu_elemento,'background','ffffff','66FF00');

Realmente llevo un tiempo buscando funciones de este tipo y siempre acabo usando esta, jeje... es perfect!.... ademas tirada de cambiar. Yo le he puesto alguna cosilla mas pero bueno... por ejemplo que no necesite id para los elementos y demas.

Hasta pronto!... siento no poner de donde lo saque... pero es que se me olvido!... si ofendo a su creador... me doy un tiron de orejas!.

Hasta pronto!...

Espero haberte ayudado!.
  #3 (permalink)  
Antiguo 22/05/2010, 19:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 39
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: FadeIn-FadeOut para borde de input?

Gracias por la respuesta, a la que me ponga activo otra vez con el formulario lo pruevo, Gracias, aun asi, me parece raro que no haya ninguna funcion predefinida en jQuery para hacer tal cosa o_o :S
  #4 (permalink)  
Antiguo 23/05/2010, 08:01
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: FadeIn-FadeOut para borde de input?

Hola Dunnow,

Yo es que jquery no lo toco, jeje... si eso alguno que sepa te diga... pero con esa funcion es un gusto. Yo ademas la uso con otra funcion con la que valido los campos... y lo que hace es validar campo a campo con un bucle que se repite cada 15 milisengudos... y cada 15 se colorea un campo de verde fosforito... uno a uno... y cuando acaba pasan a su estado original...

Es como un fuego artificial... jeje... queda guapo... y mas si usas la propiedad border... de borde negro a green da un efeto guapo. Ademas es super rapido.

Hasta pronto!.

Etiquetas: css, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:01.