ion.rangeSlider test playground

by Denis Ineshin

HTML

<script src="http://ionden.com/a/plugins/ion.rangeSlider/static/js/ion-rangeSlider/ion.rangeSlider.js"></script>
<link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.css">
<link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.skinFlat.css">
<div class="range-slider">
    <input type="text" class="js-range-slider" value="" />
    
    <button class="minus js-btn-minus">[-]</button>
    <button class="plus js-btn-plus">[+]</button>
</div>

CSS

body {
    margin: 40px 55px;
    font-family: Arial, sans-serif;
    font-size: 12px;
}
.range-slider {
    position: relative;
    height: 80px;
}
.extra-controls {
    position: relative;
    border-top: 3px solid #000;
    padding: 10px 0 0;
}

.minus,
.plus {
    position: absolute;
    top: 22px;
}

.minus {
    left: -35px;
}
.plus {
    right: -35px;
}

JavaScript

var $range = $(".js-range-slider"),
    $btn_minus = $(".js-btn-minus"),
    $btn_plus = $(".js-btn-plus"),
    min = 100,
    max = 200,
    step = 10,
    from = 150;

$range.ionRangeSlider({
    type: "single",
    min: min,
    max: max,
    step: step,
    from: from,
    onFinish: function (data) {
        from = data.from;
    }
});

$btn_minus.on("click", function () {
    updateRange(-1);
});

$btn_plus.on("click", function () {
    updateRange(1);
});

var range_instance = $range.data("ionRangeSlider");

var updateRange = function (direction) {
    from += step * direction;
    if (from < min) {
        from = min;
    } else if (from > max) {
        from = max;
    }
    
    range_instance.update({
        from: from
    });
};