ion.rangeSlider test playground

by Denis Ineshin

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/js/ion.rangeSlider.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/ion.rangeSlider.min.css">
<div class="range-slider">
    <input type="text" class="js-range-slider" value="" />
</div>

<div class="buttons">
    <button class="minus js-btn-minus">[-]</button>
    <button class="plus js-btn-plus">[+]</button>
</div>

CSS

body {
    margin: 60px;
    font-family: Arial, sans-serif;
    font-size: 12px;
}

.range-slider {
    position: relative;
    height: 80px;
}

.buttons {
    display: flex;
    justify-content: space-between;
}
.buttons > button {
    font-size: 20px;
    padding: 10px;
}

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({
	grid: true,
    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
    });
};