【问题标题】:How to force HTML slider to show its initial value [duplicate]如何强制 HTML 滑块显示其初始值 [重复]
【发布时间】: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


【解决方案1】:

我刚刚在这里找到了答案:

How can I update the position of a range input slider via vanilla js? 斯科特·马库斯

当我添加 element.value = myObject.init 时,滑块会跳到适合值 init 的位置。

【讨论】:

  • 请不要回答带有问题链接的问题。由于这是指向内部答案的链接,因此您可以引用答案的相关部分,给予适当的评价,并展示您如何将其应用于您的问题。或者,如果有人投票结束您的问题作为该问题的副本,就像我一样,您可以说答案确实回答了您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
相关资源
最近更新 更多