我有一个滑块,其值介于0到100之间.
我想将它们映射到100到10,000,000的范围.
我已经看到一些功能散布在网络上,但它们都是用C++编写的.我在Javascript中需要它.
有任何想法吗?
是否可以使用JQuery Slider(范围滑块/双滑块)来获得非线性(非一致"步长")值?
我想将水平滑块看起来像:
|----|----|----|----|----|--------|--------|-------------------------|--------------------------|...
0 500 750 1000 1250 1500 2000 2500 75000 100000...
Run Code Online (Sandbox Code Playgroud)
例如,我想要以下JQuery代码:
var values = [0, 500, 750, 1000, 1250, 1500, 2000, 2500, 75000, 100000, 150000, 200000, 250000, 300000, 350000, 400000, 500000, 1000000];
var slider = $("#price-range").slider({
orientation: 'horizontal',
range: true,
min: 0,
max: 1000000,
values: [0, 1000000],
slide: function(event, ui) {
var includeLeft = event.keyCode != $.ui.keyCode.RIGHT;
var includeRight = event.keyCode != $.ui.keyCode.LEFT;
slider.slider('option', 'value', findNearest(includeLeft, includeRight, ui.value));
$("#price-amount").html('$' + ui.values[0] + ' - $' + …
Run Code Online (Sandbox Code Playgroud) 我正在使用这个jQuery UI代码用于对数滑块:
var minVal = 10;
var maxVal = 100;
$("#slider").slider({
range: true,
min: minVal,
max: maxVal / 2,
values: [minVal, maxVal],
slide: function(event, ui) {
$("#amount_min").val(Number(expon(ui.values[0], minVal, maxVal)).toFixed(0));
$("#amount_max").val(Number(expon(ui.values[1], minVal, maxVal)).toFixed(0));
}
});
Run Code Online (Sandbox Code Playgroud)
该expon
功能是:
function expon(val, min,max) {
var minv = Math.log(min);
var maxv = Math.log(max);
max = max / 2;
// calculate adjustment factor
var scale = (maxv - minv) / (max - min);
return Math.exp(minv + scale * (val - min));
}
Run Code Online (Sandbox Code Playgroud)
#amount_min
并且#amount_max …