简体   繁体   English

使用 javascript 将范围 0.5->1 转换为 output 范围 1>0

[英]Convert range 0.5->1 to output range 1>0 with javascript

I'm trying to make it so that when a range slider is increased from a starting (min) value of 0.5 and an end (max) value of 1 the converted output value decreases from a starting point of 1 (when the slider is at 0.5) and then decreasing to 0 (when the slider is at 1)我试图做到这一点,以便当 slider 范围从 0.5 的起始(最小值)和 1 的结束(最大值)值增加时,转换后的 output 值从 1 的起点减小(当 Z10ZBF08F0BBDAE4618B947 0.5) 然后减小到 0 (当 slider 为 1 时)

Here is what I have tried, currently the start output of the converted number is correct at 1 but when incresing the slider it is supposed to go down not up!这是我尝试过的,目前转换后的数字的开始 output 在 1 是正确的,但是当增加 slider 时,它应该是 go 向下不向上!

 updatefaderval(); function updatefaderval() { var rangeval = document.getElementById('fader').value; document.getElementById('faderval').innerText = rangeval; document.getElementById('convertedval').innerText = convert(rangeval); } function convert(inputval) { var aMin = 0.5; var aMax = 1; var bMin = 1; var bMax = 0; var aValue = inputval; var percentage = aValue / ( aMax - aMin ); var outputvalue = bMax - percentage * (bMax - bMin); console.log(percentage); return outputvalue; }
 <input id="fader" oninput="updatefaderval();" type="range" min="0.5" max="1" step="0.01" value="0.5" style="display:block"> Slider Actual Value: <span style="display:inine-block" id="faderval"></span><br /> Converted Value: <span style="display:inine-block" id="convertedval"></span>

As I set the bMin at 1 and the bMax at 0 i thought this would have the desiried output but alas not!当我将 bMin 设置为 1 并将 bMax 设置为 0 时,我认为这将具有所需的 output 但可惜不是!

Here is the formula you could use:这是您可以使用的公式:

 updatefaderval(); function updatefaderval() { var range = document.getElementById('fader'); document.getElementById('faderval').innerText = range.value; document.getElementById('convertedval').innerText = convert(+range.value, +range.min, +range.max, 1, 0); } function convert(inputval, srcStart, srcEnd, destStart, destEnd) { return destStart + (inputval - srcStart) * (destEnd - destStart) / (srcEnd - srcStart); }
 <input id="fader" oninput="updatefaderval();" type="range" min="0.5" max="1" step="0.01" value="0.5" style="display:block"> Slider Actual Value: <span id="faderval"></span><br> Converted Value: <span id="convertedval"></span>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM