JSFiddle - React, Tailwind, and code Playground
HTML
<input type="text" id="amountA"/>
<input type="text" id="amountB"/>
<input type="text" id="amountC"/>
<div id="sliderA"></div><br />
<div id="sliderB"></div><br />
<div id="sliderC"></div>
JavaScript
$(function() {
$("#sliderA").slider({
range: "min",
value: 500,
min: 500,
max: 1000,
step: 1,
slide: function(event, ui) {
$("#sliderB").slider("value", 1 + 0.5* Math.log($("#sliderA").slider("value")/500));
$("#sliderC").slider("value", $("#sliderB").slider("value")*$("#sliderA").slider("value")*50);
updateValues();
}
});
$("#sliderB").slider({
range: "min",
value: 1,
min: 1,
max: 1.4,
step:0.01,
slide: function(event, ui) {
$("#sliderA").slider("value", 500 * Math.exp(($("#sliderC").slider("value")-1) * 4.6));
$("#sliderC").slider("value", $("#sliderA").slider("value")*$("#sliderB").slider("value")*50);
updateValues();
}
});
$("#sliderC").slider({
range: "min",
value: 10000,
min: 20000,
max: 70000,
step: 200,
slide: function(event, ui) {
$("#sliderA").slider("value", $("#sliderC").slider("value")/($("#sliderB").slider("value")*50));
$("#sliderB").slider("value", $("#sliderC").slider("value")/($("#sliderA").slider("value")*50));
updateValues();
}
});
});
function updateValues()
{
$("#amountA").val($("#sliderA").slider("value"));
$("#amountB").val($("#sliderB").slider("value"));
$("#amountC").val($("#sliderC").slider("value"));
}