范围输入和进度条问题与增量

时间:2017-08-28 07:22:32

标签: javascript jquery

我正在尝试滑动范围滑块以从0到100填充进度元素 但是在范围滑块中,我在最小值和最大值中有不同的值

因此无法在简单的更改jquery代码中完成...

我无法弄清楚增加数字的方法,以便它能顺利运作,或者我的方法不是那样做的,请咨询一下?

$(document).on("input change", "#rangeSlider" ,function() {

        var valNumb = parseInt($(this).val());
        
        var newVal = valNumb - 18;
        newVal = newVal++;

        $(".rangeProgress").val(newVal);
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="range-slider" type="range" id="rangeSlider" name="range" value="18" min="18" max="99">

<progress class="rangeProgress" value="0" max="100"></progress>

2 个答案:

答案 0 :(得分:1)

你应该根据minmax属性做一些基本数学计算百分比:

$(document).on("input change", "#rangeSlider" ,function() {

        var valNumb = parseInt($(this).val()) - $(this).attr('min');
        var progress = valNumb / ($(this).attr('max') - $(this).attr('min')) * 100

        $(".rangeProgress").val(progress);
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="range-slider" type="range" id="rangeSlider" name="range" value="18" min="18" max="99">

<progress class="rangeProgress" value="0" max="100"></progress>

答案 1 :(得分:0)

&#13;
&#13;
$(document).on("input change", "#rangeSlider" ,function() {

        var valNumb = parseInt($(this).val()-this.min);
        var newVal = valNumb/(this.max-this.min)*100;

        $(".rangeProgress").val(newVal);
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="range-slider" type="range" id="rangeSlider" name="range" value="18" min="18" max="99">

<progress class="rangeProgress" value="0" max="100"></progress>
&#13;
&#13;
&#13;