2010-10-15 7 views
5

Attualmente sto utilizzando il dispositivo di scorrimento dell'interfaccia utente di jQuery per consentire alle persone di selezionare un importo di donazione. Il problema è che il dispositivo di scorrimento è troppo piccolo e deve compensare il minimo di $ 1 e il massimo di $ 10.000. La soluzione proposta consiste nell'usare un piccolo incremento, forse $ 1 o $ 2, per valori compresi tra $ 1 - $ 1000, e quindi da lì, aumentando esponenzialmente l'incremento fino a $ 10.000, ma non riesco a trovare un plugin capace di questo.Cursore necessario che può aumentare in modo esponenziale (non utilizzando l'intervallo)

Quindi ora ho l'incremento a $ 1 e, come probabilmente avete indovinato, è quasi possibile selezionare un importo di denaro specifico.

Qualsiasi aiuto sarebbe fantastico!

+2

C'è qualche vantaggio nell'avere uno slider come questo rispetto a una casella di testo in cui è possibile digitare l'importo? Come utente, non mi prenderei il tempo di giocherellare con uno slider se potessi semplicemente scriverlo. –

+0

possibile duplicato di [Slider logaritmico] (http://stackoverflow.com/questions/846221/logarithmic-slider) –

+0

Potresti anche essere interessato a: http://forum.jquery.com/topic/non-linear-logarithmic-or-exponential-scale-for-slider –

risposta

1

Un cursore difficilmente mi colpisce come lo strumento giusto per quel lavoro.

Ma se si insiste, è possibile aumentare la dimensione del passo del cursore (ad esempio 10 posizioni possibili) e per ogni passo osservare l'importo a cui corrisponde.

Esempio:

  • 1 -> 1 $
  • 2 -> 2 $
  • 3 -> 5 $
  • 4 -> 10 $
  • 5 -> 50 $
  • 6 -> 200 $
  • 7 -> 1k $
  • 8 -> 5k $
  • 9 -> 10k $
  • 10 -> 20k $
+0

Sembra il mappaggio corretto per un'applicazione di donazione. (E non è esattamente esponenziale, quindi dovresti usare una tabella di ricerca di qualche tipo. –

1

Per aggiungere al @brunodecarvalho 's risposta, fare un JSlider con segni di graduazione, ma senza etichette, accoppiarlo con un JLabel o un JTextField in modo che quando il valore del dispositivo di scorrimento viene modificato, il valore mappato in modo appropriato viene visualizzato in JLabel o JTextField.

Se stai usando un JTextField, la fiducia il valore nel JTextField come importo della donazione effettiva dell'utente (in modo che possa modificarlo e scegliere un valore che non è sul cursore), e aggiornare il cursore per un livello sufficientemente vicino segno di spunta quando cambia il JTextField.

+1

Ok, quindi ho dato questa risposta nei nomi delle classi Java, a causa del tag java, ma ora sono convinto che il tag java sia sbagliato. Non sto cancellando la risposta, perché chiunque abbia una conoscenza informatica sufficientemente generale dovrebbe essere in grado di tradurre i nomi delle classi nella lingua/nel toolkit di loro scelta. –

0

Come è stato detto in precedenza, sarà necessario mappare le posizioni del cursore su importi di denaro. Ecco un bel mappatura quasi logaritmica che ha la bella proprietà di dare valori rotonde:

var slider_values = []; 
var mantissas = [1, 1.2, 1.4, 1.6, 1.8, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9]; 
for (var base = 1; base < 10000; base *= 10) { 
    for (var i = 0; i < mantissas.length; i++) 
     slider_values.push(mantissas[i] * base); 
} 
slider_values.push(10000); 

Questo mappe campo dei numeri interi [0..64] per la gamma 1 - 10.000.

Problemi correlati