Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2007, 17:39
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 3 meses
Puntos: 45
Re: Hacer Spinner??

Hola yosvany:

Buscando un poco creo que por spinner te refieres a esto.

Antes de ponerme a reinventar la rueda hay que buscar un poquito:

Una vuelta por Google me ha dado una respuesta que me ha gustado bastante:
http://www.codingforums.com/showthre...threadid=34958
Aunque no he mirado el código por lo menos funciona, seguramente que hay que hacerle unos retoques.

Lo que más me gusta es que manteniendo pulsado el botón también funciona, aunque yo le habría puesto aceleración (es decir, que al principio vaya lento creciendo y que cuanto más tiempo estemos pulsando, más rápido crezca).

Te pongo un ejemplo de acelerador que he hecho para que te hagas una idea:
Código PHP:
var incremento 1aumentadoracelerador1acelerador2;
function 
aumenta() {
    
acelerador1 setTimeout(" incremento += 5 "2000);
    
acelerador2 setTimeout(" incremento += 15"5000);
    
aumentador setInterval( function() {
        var 
laCaja document.getElementById("caja");
        var 
valorActual parseInt(laCaja.value10);
        
laCaja.value valorActual incremento;
    } , 
50);
    var 
btn document.getElementById("boton");
    
btn.onmouseup btn.onmouseout = function() {
        
clearInterval(aumentador);
        
clearTimeout(acelerador1);
        
clearTimeout(acelerador2);
        
incremento 1;
    }
}

</script>

<input type="text" id="caja" value="0" />
<button id="boton" onmousedown="aumenta()">Aumenta</button> 
Al hacer click va aumentando uno por uno, pero al mantenerlo pulsado se incrementa rápidamente. Al mantenerlo pulsado durante 2 segundos en vez de aumentar 1 por 1 pasa a aumentar de 6 en 6. Luego al de 3 segundos más de mantener pasa a aumentar de 21 en 21.

Es interesante porque si queremos llegar al 1000 no tendremos que esperar 50 segundos (50ms*1000 iteraciones = 50000ms), sino escasos 6 segundos y medio. Llegar a 5000 no nos parecerá duro, pero sin aceleradores es imposible esperar 4'16'' manteniendo apretado el botón.


Bueno, para valores altos, pues incluir aceleradores o un acelerador común:
Código PHP:
acelerador setInterval(" incremento += 1 "500); 


Bueno, me ha gustado la idea del acelerador como ves.



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.