因此,当用户拖动范围滑块时,如果值增大或减小,我需要知道一些<input type="range">
个元素。到目前为止,我能够找到/实现的是当用户首次触摸或释放滑块并将当前更改值与最后一个数字进行比较时使用的内容,但这样做不会起作用,因为它可以&# 39; t补偿用户何时仍在拖动。
有没有办法用JS数学来实现这个目标?
答案 0 :(得分:0)
我从this帖子中发现,这与捕捉onInput
或onChange
事件无关。要捕获滑块的每个移动,请使用onInput
。以下是所示的差异。
你可以按照你的想法做同样的逻辑,保存最后一个值,然后检查电流是否小于或大于最后一个,看它是否正在增加或减少。
编辑请注意,如果您使用箭头键移动滑块,则会同时触发两个事件。如果你使用鼠标,只有当你停止移动时才会触发它们,然后松开鼠标按钮。
var lastNum = 0;
function onInput(value) {
if(lastNum < value) {
console.log("increasing");
} else {
console.log("decreasing");
}
lastNum = value;
console.log("onInput: " + value);
}
function onChange(value) {
console.log("onChange: " + value);
}
<input type="range" oninput="onInput(this.value)" onchange="onChange(this.value)">