2010-01-20 12 views
5

Tengo un control deslizante jQuery inicializado y, a continuación, establezco dinámicamente los valores mínimo máximos relacionados con el contenido de una solicitud json. Los pasos de AV 100, min a max se recalculan a incluso cientos, la mayoría del caso en algún lugar entre 300 y 4800.Problema del control deslizante de jQuery que alcanza valores mínimos y máximos

Los valores del control deslizante y la configuración son correctos, pero cuando muevo el control no puedo obtener todo el salida a los extremos, se detiene a unos pocos pasos de valores min/max. ¿Porqué es eso?

He intentado todo tipo de cosas, nada funciona. Terminé agregando 200 en el valor superior y restando 200 en el inferior y para compensar, pero eso es un truco y no una solución.

+0

¿Es que el mango ha alcanzado el máximo en su posición, pero el valor informado no está en el máximo (en lugar de que el mango ni siquiera se pueda llevar hasta el final)? ¿Y es peor cuando te deslizas rápidamente? Solo estoy tratando de determinar si este es el mismo problema que estoy experimentando. Aún no hay solución ... pero te lo haré saber. – Ben

Respuesta

6

En su devolución de llamada 'slide', intente usar ui.value para obtener el valor. Esto resolvió mi problema. Ver jQuery UI slider - can't slide to 0 excepto no ir por la respuesta, vaya por el comentario a la respuesta.

0

Me doy cuenta de que esta pregunta tiene 5 años pero acabo de encontrar un problema similar hoy. Tenía un control deslizante corto con muchos pasos, pasó de 0 a 1 con pasos de 0.01. El control deslizante toparía con los extremos del control deslizante antes de tocar los pasos más externos, por lo que solo podría bajar a 0.02 y hasta 0.98.

Si alguien se encuentra con este problema, una solución rápida es simplemente hacer que sus valores mínimo y máximo vayan un poco más allá de lo que deberían y ajuste su valor si el usuario se desliza más allá de ellos.

('.slider-container').slider({ 
       min: -0.02, max: 1.02, step: 0.01, slide: function() { 

        // make values below 0 and over 1 snap back 
        if ($(this).slider('value') < 0) { 
         $(this).slider('value', 0); 
        } 

        if ($(this).slider('value') > 1) { 
         $(this).slider('value', 1); 
        } 
}); 
0

He tenido un problema similar con estos ajustes

min: 35000.74 
max: 150000 
step: 1 //(default, did not actually change it) 

y su movimiento sólo llegó al extremo de 149.999,74. Por supuesto, en mi caso el problema era que dado el paso 1 y un rango que no se divide uniformemente en estos pasos, uno de los valores finales nunca podría alcanzarse con un control deslizante.

Se ha cambiado el min para que sea 35000 (Math.floor()) y todo funcionó como un amuleto.

Cuestiones relacionadas