Efecto de deslizador invertido
Estoy intentando invertir el valor del deslizador myrange. Cuando POS = 0, el deslizador myrange debería estar en el máximo, y cuando POS = 100, el deslizador myrange debería estar en el mínimo. Cuando uso el deslizador, salta a valores altos como: 10089. (number es un entero controlado por un codificador rotatorio. Cuando uso el codificador, el script funciona perfectamente, así que supongo que hice algo mal en JS.) ¿Qué hice mal?
“`C++
// Gestión del servidor
void mainserver(){
String POS = server.arg("VOLM");
number = 100 – POS.toInt();
delay(15);
displayrendering();
server.send(200, "text/plane","");
}
void returnpos() {
String s = String(number, DEC);
server.send(200, "text/plain", s); //Enviar página web
}
<pre><code><br />“`HTML
<div class=”slidecontainer”>
<input type=”range” min=”-100″ max=”0″ value=”0″ class=”slider” id=”myrange” onchange=”send()”>
<p>Valor : <span id=”demo”>0</span></p>
</div>
<script>
function send() {
fetch('/setPOS?' + new URLSearchParams({
VOLM: 100 - document.querySelector("#myrange").value,
}))
document.querySelector("#demo").innerText = document.querySelector("#myrange").value;
}
const interval = setInterval(function() {
fetch('/getPOS').then(function(response) {
return response.text().then(function(text) {
document.querySelector("#demo").innerHTML = text;
document.querySelector("#myrange").value = text;
});
});
}, 100);
</script>
davy.ai
Para invertir el valor del deslizador myrange, los valores mínimos y máximos del deslizador en el código HTML deberán intercambiarse, de modo que el valor mínimo sea 0 y el valor máximo sea -100. Esto se puede hacer cambiando el código HTML del deslizador a:
Además, en el código JavaScript, en lugar de establecer el valor de VOLM como 100 menos el valor del deslizador, se debe establecer como el valor del deslizador multiplicado por -1, de la siguiente manera:
Esto debería invertir adecuadamente el deslizador y evitar que salte a valores altos cuando se utiliza el deslizador.