2010-10-15 6 views
5

W tej chwili używam suwaka jQuery UI, aby umożliwić ludziom wybór kwoty darowizny. Problem polega na tym, że suwak jest mały i musi zrekompensować minimum 1 USD, a maksymalnie 10 000 USD. Proponowanym rozwiązaniem jest użycie niewielkiej inkrementacji, może 1 $ lub 2 $, dla wartości między 1 $ - 1000 $, a następnie stamtąd, zwiększając wykładniczo aż do 10.000 $, ale nie mogę znaleźć wtyczki, która by to potrafiła.Potrzebny suwak, który może wzrastać wykładniczo (nie używając zakresu)

Tak więc teraz mam wzrost o 1 $ i jak się pewnie domyślasz, prawie można wybrać określoną kwotę pieniędzy.

Każda pomoc będzie świetna!

+2

Czy jest jakaś korzyść z posiadania takiego suwaka w porównaniu do pola tekstowego, w którym można wpisać kwotę? Jako użytkownik nie poświęciłbym czasu na skrzypce z suwakiem, gdybym mógł go po prostu wpisać. –

+0

możliwy duplikat [suwaka Logarytmicznego] (http://stackoverflow.com/questions/846221/logarithmic-slider) –

+0

Możesz być także zainteresowany: http://forum.jquery.com/topic/non-linear-logarithmic-or-exponential-scale-for-slider –

Odpowiedz

1

Suwak nie wydaje mi się odpowiednim narzędziem do tej pracy.

Ale jeśli nalegasz, możesz zwiększyć rozmiar kroku suwaka (powiedzmy, 10 możliwych pozycji) i dla każdego kroku sprawdzić ilość, której odpowiada.

przykład:

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

To brzmi jak właściwe odwzorowanie dla wniosku o darowiznę. (I nie jest to dokładnie wykładnicze, więc chciałbyś użyć jakiejś tablicy odnośników.) –

1

Aby dodać do @brunodecarvalho „s odpowiedź, zrób JSlider ze znacznikami ale bez etykietek, para to z JLabel lub JTextField tak, że kiedy wartość suwaka zostanie zmieniona, odpowiednio odwzorowana wartość pojawi się w JLabel lub JTextField.

Jeśli używasz JTextField, należy zaufać wartości w JTextField jako rzeczywistej wartości darowizny użytkownika (aby mógł on edytować i wybrać wartość, która nie znajduje się na suwaku) i zaktualizować suwak odpowiednio do siebie znacznik wyboru, gdy zmienia się JTextField.

+1

Ok, więc dałem tę odpowiedź w nazwach klas Java, ponieważ jest to znacznik java, ale teraz jestem przekonany, że znacznik Java jest błędny. Nie usuwam odpowiedzi, ponieważ każdy, kto ma wystarczająco ogólną wiedzę komputerową, powinien umieć przetłumaczyć nazwy klas na wybrany przez siebie język/zestaw narzędzi. –

0

Jak już wcześniej wspomniano, będziesz musiał odwzorować pozycje suwaków na kwoty pieniędzy. Oto miły niemal logarytmiczne odwzorowanie że ma ładny obiekt dawania wartości Runda:

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); 

ten odwzorowuje zakres całkowitą [0..64] do zakresu 1 - 10.000.