2016-11-15 37 views
0

我一直在尋找一個解決方案,我的滑塊呈現非線性數字和整個這個解決方案來: JQuery UI Slider with Non-linear/Exponential/Logarithmic steps非線性引導滑塊負數

HTML:

<input type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="[0,100]" id="sl2" style="width:60%"> 

JS :

function commafy(val) { 
    var toPresent = 0; 
    if (val < 10) { 
     toPresent = (val/10) * 1; 
    } else if (val <= 80) { 
     toPresent = 1+ (val - 10)/70 * 20; 
    } else { 
     toPresent = 1+20 + (val - 80)/20 * 500; 
    }; 
    return toPresent; 
} 

     $("#sl2").slider({ 
      reversed : true, 
      tooltip_split: true, 
      formatter: function(value) { 
       return parseFloat(commafy(value)).toFixed(2); 
      }, 
     }); 

的jsfiddle:https://jsfiddle.net/hw1aer2f/1/

Comaffy函數基本上使滑塊非線性。所以前10%的滑塊是0-1。 10%到80%是1到20,80%到100%是20到500.但是,這些都是正數,當我試圖將前10%從-100變爲0時,功能基本上停止工作。

回答

0

我創建了一個我認爲可以提供通用解決方案的函數。你可以試試here

// currentValue: the actual value of the slider 
// min: minimum value on the slider (0) 
// max: maximum value on the slider (10) 
// scaleMin: desired range minimum value (-100) 
// scaleMax: desired range maximum value (0) 
function calc(currentValue, min, max, scaleMin, scaleMax) { 
    return scaleMin + currentValue * (scaleMax - scaleMin)/(max - min); 
}