Estoy trabajando con el control deslizante <input type="range" /> con:
Funciona con valor positivo (mín.: 20, máx.: 90, paso: 15) pero no tengo idea de cómo manejar el valor negativo.
¿Me puedes ayudar?
Establezca el valor mínimo en -80 y agregue padding-left al control deslizante para que el usuario piense que -90 es el valor mínimo.
const sliders = document.querySelectorAll("input[type=range]"); for (const slider of sliders) { slider.addEventListener('change', (e) => { e.target.nextElementSibling.value = e.target.value; }); slider.nextElementSibling.value = slider.value; } input { padding-left: 15px; } <input type="range" min="-80" max="-20" step="15" /> <output></output>No puede hacerlo simplemente usando HTML ya que -90 es menor que -20, por lo que no puede establecer min="-20" max="-80" . Pero al usar este truco puede lograr su resultado.
Mantenga el HTML como:
<input type="range" min="20" max="90" step="15"/> <output></output>Cambia tu JavaScript a:
for (const slider of sliders) { slider.addEventListener("change", (e) => { e.target.nextElementSibling.value = "-" + e.target.value; }); slider.nextElementSibling.value = "-" + slider.value; }