簡體   English   中英

使用 javascript 將范圍 0.5->1 轉換為 output 范圍 1>0

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

我試圖做到這一點,以便當 slider 范圍從 0.5 的起始(最小值)和 1 的結束(最大值)值增加時,轉換后的 output 值從 1 的起點減小(當 Z10ZBF08F0BBDAE4618B947 0.5) 然后減小到 0 (當 slider 為 1 時)

這是我嘗試過的,目前轉換后的數字的開始 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>

當我將 bMin 設置為 1 並將 bMax 設置為 0 時,我認為這將具有所需的 output 但可惜不是!

這是您可以使用的公式:

 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