gpt4 book ai didi

javascript - 仅 HTML/Javascript 3 个范围 slider ,总和为 100,2 个独立的数学交互

转载 作者:行者123 更新时间:2023-12-02 23:22:45 24 4
gpt4 key购买 nike

已更新。

Sean Kaat 为我指明了如何添加输入字段的正确方向。然而,我仍然不确定如何处理这三个范围之间的数学关系。

<!DOCTYPE html>
<html lang='en' class=''>
<head>
<meta charset='UTF-8'>
</head>

<title>Calculator</title>
<h1>Calculator</h1>

<body>

<form>
<Label for="sliderBarOne">Ready</Label>
<input type="range" id="sliderBarOne" min="0" max="100" step="0.01" value="0" oninput="this.form.rangeOne.value=this.value">
<input type="number" id="rangeOne" oninput="this.form.sliderBarOne.value=this.value, updateSum();">
<br>
<Label for="sliderBarTwo">ACW</Label>
<input type="range" id="sliderBarTwo" min="0" max="100" step="0.01" value="0" oninput="this.form.rangeTwo.value=this.value">
<input type="number" id="rangeTwo" oninput="this.form.sliderBarTwo.value=this.value">
<br>
<Label for="sliderBarThree">Extra</Label>
<input type="range" id="sliderBarThree" min="0" max="100" step="0.01" value="0" oninput="this.form.rangeThree.value=this.value">
<input type="number" id="rangeThree" oninput="this.form.sliderBarThree.value=this.value">
<br>Sum: <span id="sum">0</span>
</form>

<script>

document.getElementById("sliderBarOne").addEventListener("input", updateReady);
document.getElementById("sliderBarTwo").addEventListener("input", updateACW);
document.getElementById("sliderBarThree").addEventListener("input", updateExtra);

function updateReady() {
let readyBox = document.getElementById('sliderBarOne').value;
let ACWBox = document.getElementById('sliderBarTwo').value;
let extraBox = document.getElementById('sliderBarThree').value;

updateSum();
}

function updateACW() {
let readyBox = document.getElementById('sliderBarOne').value;
let ACWBox = document.getElementById('sliderBarTwo').value;
let extraBox = document.getElementById('sliderBarThree').value;

updateSum();
}

function updateExtra() {
let readyBox = document.getElementById('sliderBarOne').value;
let ACWBox = document.getElementById('sliderBarTwo').value;
let extraBox = document.getElementById('sliderBarThree').value;

updateSum();
}

function updateSum() {
var sliderOneValue = +document.getElementById('sliderBarOne').value;
var sliderTwoValue = +document.getElementById('sliderBarTwo').value;
var sliderThreeValue = +document.getElementById('sliderBarThree').value;
document.getElementById('sum').innerHTML = sliderOneValue + sliderTwoValue + sliderThreeValue;
}

</script>
</body>
</html>

我想建立两个独立的数学关系,但我不知道如何开始研究。

我希望“Ready”成为第一个将 ACW 设置为 100-Ready 的数字。所以,如果有95 Ready,ACW会自动设置为5。我希望Extra设置为0来启动。

Ready = 95.00
ACW = 5.00
Extra = 0.00

因此,为了演示 Extra Time 对 Ready 和 ACW 的影响,我希望添加 Extra 来调整 Ready 和 ACW,同时保持 Ready 和 ACW = 100。Ready + ACW + Extra 不等于 100。

因此,在 5.00 输入 Extra 时会发生以下情况。

Ready = 90.00
ACW = 10.00
Extra = 5.00

Sean Kaat 建议了一些目前对我不起作用的建议,我不知道为什么。我设置了 updateReady、updateACW 和 updateExtra 的空函数,以便我可以使用它来处理三个单独的数学更改。

最佳答案

你说得对,数学量将会大幅增加;您希望确保按特定顺序设置值。

首先:将 READY 设置为 PREVIOUS_READY_VALUE - EXTRA(如果该值低于 0,则将其设置为 0),

然后:将 ACW 设置为等于100 - (EXTRA + READY)

最后:将每个 slider 的input.value设置为上述值

slider 的每个 onChange 事件都应该进行数学计算,然后相应地更改 html 的值。

关于javascript - 仅 HTML/Javascript 3 个范围 slider ,总和为 100,2 个独立的数学交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com