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="extra-controls">
    <input type="text" class="js-input-min" value="0" />
    <input type="text" class="js-input-max" value="1000" />
</div>

CSS

body {
    margin: 60px;
    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;
}

JavaScript

var $range = $(".js-range-slider"),
    $inputMin = $(".js-input-min"),
    $inputMax = $(".js-input-max"),
    instance,
    min = 0,
    max = 1000;

$range.ionRangeSlider({
	skin: "big",
    type: "single",
    min: min,
    max: max,
    from: 500
});

instance = $range.data("ionRangeSlider");

$inputMin.on("change keyup", function () {
    var val = $(this).prop("value");
    
    // validate
    if (val > max) {
        val = max;
    }
    
    min = val;
    instance.update({
        min: val
    });
});

$inputMax.on("change keyup", function () {
    var val = $(this).prop("value");
    
    // validate
    if (val < min) {
        val = min;
    }
    
    max = val;
    instance.update({
        max: val
    });
});