2010-10-15 5 views
5

Şu anda insanların bir bağış miktarını seçmelerine izin vermek için jQuery UI's kaydırıcısını kullanıyorum. Sorun şu ki, kaydırıcı küçüktür ve en az 1 $ ve en fazla 10.000 $ telafi etmelidir. Önerilen çözüm, 1 $ ile 1000 $ arasındaki değerler için 1 $ ya da 2 $ değerinde küçük bir artış kullanmak ve daha sonra, artış miktarını katlanarak 10,000 $ 'a kadar artıyor ancak bunu yapabilecek bir eklenti bulamıyorum.Üssel olarak artış gösterebilen kaydırıcıya ihtiyacınız var (aralık kullanmıyor)

Şu an 1 $ 'lık artışım var ve muhtemelen tahmin edeceğiniz gibi, belirli bir para miktarını seçmek neredeyse mümkün.

Herhangi bir yardım harika olurdu!

+2

Bunun gibi bir sürgüye sahip olmanın, miktarın yazılabilen bir metin kutusuna sahip olmasının bir yararı var mı? Bir kullanıcı olarak, ben sadece yazabilirsiniz eğer bir sürgü ile sürmek için zaman alamadım. –

+0

olası [Logaritmik kaydırıcı] kopyası (http://stackoverflow.com/questions/846221/logarithmic-slider) –

+0

Ayrıca ilginizi çekebilir: http://forum.jquery.com/topic/non-linear-logarithmic-or-exponential-scale-for-slider –

cevap

1

Kaydırıcı beni bu iş için doğru araç olarak görmüyor.

Ancak ısrar ederseniz, kaydırıcı adım büyüklüğünü (10 olası konum) artırabilir ve her adım arama için karşılık gelen miktarı arttırabilirsiniz.

Örnek:

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

Bu, bir bağış başvurusu için doğru eşleme gibi görünüyor. (Ve tam olarak üstel değil, bu yüzden bir çeşit bir arama tablosu kullanmak istersiniz.) –

1

@brunodecarvalho 'ın cevabı eklemek için 20k, kene işaretleri ancak hiçbir etiket, bir JLabel kadar zaman ki JTextField ile çift bunu bir JSlider yapmak kaydırıcının değeri değiştirilir, uygun şekilde eşlenen değer JLabel veya JTextField'da görüntülenir.

Bir JTextField kullanıyorsanız, uygun şekilde yakın kaydırıcıyı (o düzenleyip kaydırıcıdaki değil bir değeri alabilmesi için daha) ve güncellemek, kullanıcının gerçek bağış tutarı olarak JTextField değeri güven JTextField değiştiğinde onay işareti.

+1

Tamam, bu cevabı java etiketinin Java sınıf adlarında verdim, ama şimdi java etiketinin yanlış olduğuna ikna oldum. Cevabı silmiyorum, çünkü yeterince genel bilgi işlem bilgisine sahip olan herkes, sınıf isimlerini seçtikleri dil/araç setine çevirebilmelidir. –

0

Daha önce de söylendiği gibi, kaydırıcı konumlarını para miktarlarıyla eşleştirmeniz gerekecektir. İşte yuvarlak değerler verme güzel özelliği güzel neredeyse logaritmik eşleme:

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

Bu aralıkta 1'e tamsayı aralığı [0..64] haritalar - 10.000.

İlgili konular