JQuery Slider, wie man "Schritt" Größe ändern kann

Ist es möglich mit dem JQuery-Slider (range slider /dual-Schieberegler), um nicht-lineare (nicht konsequenten "Schritt" Größe -) Werte?

Ich will horizontalen Schieberegler Aussehen:

|---- | ---- | ---- | ---- | ---- | -------- | -------- | ------------------------- | --------------------------|...
0   500  750  1000  1250 1500     2000     2500                      75000                      100000...

Zum Beispiel, ich möchte den folgenden JQuery-code:

var values = [0, 500, 750, 1000, 1250, 1500, 2000, 2500, 75000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 500000, 1000000];
var slider = $("#price-range").slider({
    orientation: 'horizontal',
    range: true,
    min: 0,
    max: 1000000,
    values: [0, 1000000],
    slide: function(event, ui) {
            var includeLeft = event.keyCode != $.ui.keyCode.RIGHT;
            var includeRight = event.keyCode != $.ui.keyCode.LEFT;
            slider.slider('option', 'value', findNearest(includeLeft, includeRight, ui.value));
            $("#price-amount").html('$' + ui.values[0] + ' - $' + ui.values[1]);
            return false;
    },
    change: function(event, ui) { 
        getHomeListings();
    }
});
function findNearest(includeLeft, includeRight, value) {
    var nearest = null;
    var diff = null;
    for (var i = 0; i < values.length; i++) {
            if ((includeLeft && values[i] <= value) || (includeRight && values[i] >= value)) {
                    var newDiff = Math.abs(value - values[i]);
                    if (diff == null || newDiff < diff) {
                            nearest = values[i];
                            diff = newDiff;
                    }
            }
    }
    return nearest;
}

Den code oben ist nicht genau arbeiten, aber die snap to grid-Funktionalität nicht funktioniert.

InformationsquelleAutor der Frage | 2009-06-08

Schreibe einen Kommentar