2016-02-24 20 views
7

inizializzo noUiSlider con i datinoUiSlider arrotondamento errore

var settings = { 
    connect: "lower", 
    range: { 
    max: 87654567890, 
    min: 0 
    }, 
    start: 30679098762, 
    step: 1 
} 

dopo valore del cursore di inizializzazione è 30679098761,50 perché?

demo qui - https://jsfiddle.net/serGlazkov/yrppsmvo/5/

+0

Penso che sia perché, mossa diapositiva 1 px aumenterà valore (cursore 87.654.567,89 mille/lunghezza in px), e quando si è scelto tale valore si tratta di prendere più vicino valore –

+0

@AlexandrKudryashov penso che non è normale, avere alcuni modi per risolvere il problema? – sglazkov

risposta

0

questo è un noUiSlider bug, fissato in 8.4.0 versione

0

Numeri che grande non può essere rappresentato esattamente alla larghezza cursori (ad esempio 300 x non può ragionevolmente essere diviso per 87.654,56789 milioni).

La soluzione utilizza un piccolo intervallo di numeri, e facendo un guardando in un array per trovare il valore di grandi dimensioni:

var range = ['x','x2','x3',...]; 

bigValueSlider.noUiSlider.on('update', function (values, handle) { 
    bigValueSpan.innerHTML = range[values[handle]]; 
}); 

Date un'occhiata al this example in the documentation di come trattare con esso.

+0

All'inizializzazione ho impostato un valore intero e perché il cursore lo modifica? So quale valore di modifica del cursore, perché traduce il valore in percentuale e indietro, e non male, ma non in fase di inizializzazione. E più, non posso impostare il valore, il plugin lo cambia. Demo qui https://jsfiddle.net/serGlazkov/yrppsmvo/8/ – sglazkov