Search code examples
javascriptjqueryrangeslider

RangeSlider to show multiple output


I manage to get one output but I want to show multiple outputs as the user slides. How can I achieve this?

Each output having a different value of say 1x, 1.2x, 1.5x, 1.3x and 1.75x

JSFiddle Demo

$('input[type="range"]').rangeslider({polyfill: false});
$('#range').on("input", function() {
$('.output1').val("$"+this.value);
}).trigger("change");
output {
  display: block;
}
<link href="https://rangeslider.js.org/assets/rangeslider.js/dist/rangeslider.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rangeslider.js.org/assets/rangeslider.js/dist/rangeslider.min.js"></script>
<input type="range"  name="range" id="range" value="100" step="25" min="1" max="1100">
    <br />
    <output class="output1">100</output>
    <output class="output2">120</output>
    <output class="output3">150</output>
    <output class="output4">130</output>
    <output class="output5">175</output>


Solution

  • Simply update all output values on change of range:

    $('input[type="range"]').rangeslider({polyfill: false});
    $('#range').on("input", function() {
    $('.output1').val("$"+parseFloat(this.value*1).toFixed(2));
    $('.output2').val("$"+parseFloat(this.value*1.2).toFixed(2));
    $('.output3').val("$"+parseFloat(this.value*1.3).toFixed(2));
    $('.output4').val("$"+parseFloat(this.value*1.5).toFixed(2));
    $('.output5').val("$"+parseFloat(this.value*1.75).toFixed(2));
    }).trigger("change");
    

    code snippet:

    $('input[type="range"]').rangeslider({polyfill: false});
    $('#range').on("input", function() {
    $('.output1').val("$"+parseFloat(this.value*1).toFixed(2));
    $('.output2').val("$"+parseFloat(this.value*1.2).toFixed(2));
    $('.output3').val("$"+parseFloat(this.value*1.3).toFixed(2));
    $('.output4').val("$"+parseFloat(this.value*1.5).toFixed(2));
    $('.output5').val("$"+parseFloat(this.value*1.75).toFixed(2));
    }).trigger("change");
    output {
      display: block;
    }
    <link href="https://rangeslider.js.org/assets/rangeslider.js/dist/rangeslider.css" rel="stylesheet"/>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://rangeslider.js.org/assets/rangeslider.js/dist/rangeslider.min.js"></script>
    <input type="range"  name="range" id="range" value="100" step="25" min="1" max="1100">
        <br />
        <output class="output1">100</output>
        <output class="output2">120</output>
        <output class="output3">150</output>
        <output class="output4">130</output>
        <output class="output5">175</output>