我设法得到一个输出,但我希望在用户幻灯片中显示多个输出。我怎样才能做到这一点?
每个输出的值不同,例如1x、1.2x、1.5x、1.3x和1.75x
$('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>
发布于 2018-09-25 16:31:38
只需在更改output时更新所有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");代码片段:
$('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>
发布于 2018-09-25 16:36:27
$('input[type="range"]').rangeslider({polyfill: false});
var _multipliers = [
1,2,3,4,5
].map(function(i){
return (+$('.output'+i).val() / 100);
});
$('#range').on("input", function() {
var _value = +this.value;
[1,2,3,4,5].forEach(function(i){
$('.output'+i).val("$"+ ((1 + _multipliers[i-1]) * _value).toFixed(2));
});
}).trigger("change");特别是在这种情况下,您可以通过最初从地图中获取值来预先计算乘数。简单地说,使用.map,可以得到所有的初始值并除以100,这样就可以得到乘数(100 -> 1,120 -> 1.2)。等等)。
然后,通过访问_multipliers[i-1],重复相同的进程来获取值,因为索引是基于0的。
只要所有的“输出”保持相同的表示法和格式,这个解决方案是通用的。
小提琴:https://jsfiddle.net/jadckr71/6/
注意:许多"$“前面的一元操作符+是将变量转换为一个数字,这样就不会有任何风险--它将是一个字符串,并将以某种方式连接起来。
https://stackoverflow.com/questions/52502757
复制相似问题