每次更改时获取滑块值的最佳方法是什么?

What is the best way to get a slider value every time it changes?

这个问题可能暗示我需要 onchange,但事实并非如此。比较这两个片段:

var slider = document.getElementById("slider")
slider.onchange = function() {
  var currentVal = slider.value
  document.querySelector("b").innerText = "The current value is " + currentVal.toString()
}
<input type="range" id="slider" min="1" max="10" step="1" , value="4">
<br>
<b>The current value is 4</b>

var slider = document.getElementById("slider")
slider.onmousemove = function() {
  var currentVal = slider.value
  document.querySelector("b").innerText = "The current value is " + currentVal.toString()
}
<input type="range" id="slider" min="1" max="10" step="1" , value="4">
<br>
<b>The current value is 4</b>

上一个使用onchange,只有在松开鼠标后才更新。

下面的那个使用 onmousemove 并在每次鼠标移到滑块上时更新。但是,我认为这不是最节省内存的方法。使用箭头键时它也不会改变,除非鼠标移到滑块上。

是否有经过认证或至少更好的方法来实现较低的目标?

只需使用 oninput 事件,当用户在现代浏览器上滑动时会调用它。

var slider = document.getElementById("slider")
slider. oninput = function() {
  var currentVal = slider.value
  document.querySelector("b").innerText = "The current value is " + currentVal.toString()
}
<input type="range" id="slider" min="1" max="10" step="1" , value="4">
<br>
<b>The current value is 4</b>