【发布时间】:2021-10-20 20:39:21
【问题描述】:
我想在 JavaScript 中创建一个滑块元素(输入类型范围),它会在发布后跳回其初始值。通过这种方式,我得到了像操纵杆一样的行为,在释放后会跳回其平衡位置。
我现在有以下代码:
var element = document.createElement('input');
element.type = "range";
element.min = myObject.min;
element.max = myObject.max;
element.step = myObject.step;
valueDiv.className = myObject.type + "_value";
elementDiv.appendChild(valueDiv);
element.defaultValue = myObject.init; //value does not show up in HTML simply because the attribute does not exist
valueDiv.innerHTML = myObject.init;
element.oninput = function() { //use oninput to get values continously during changing (onchange only gives value after mouseup)
valueDiv.innerHTML = this.value; //display changed value
}
element.onchange = function() { //use onchange to define an action after release (mouseup) of the slider)
valueDiv.innerHTML = myObject.init; //display changed value
// code here to let the element show the position that reflects element.defaultValue
// this position is only shown after loading the page
//code here //send changed value
}
当我绘制滑块时,我使用 element.oninput 事件连续显示 valueDiv 中的变化值。 element.onchange 事件在滑块被释放时触发(在 mouseup 上)。然后 valueDiv 显示初始值 (element.defaultValue)。我希望滑块的位置反映这个初始值。我没有发现元素的动作/功能这样做。
【问题讨论】:
-
也许我理解错了,但为什么不是
element.value = defaultValue? -
嗨,是的,为 element.value 分配一个值会将滑块移动到正确的位置。谢谢!
-
是的,确实如此!我也发现了这个问题:-)。谢谢!
标签: javascript html input range