javascript - 如何正确设置范围输入元素的动画?

标签 javascript html d3.js

我有一个 HTML 范围输入元素( slider ),我使用 JavaScript 动态更新其值。这工作正常,直到我单击 slider ,此时它不再更新。这是 Firefox 中的错误吗?或者为什么会发生这种情况?

<script src="http://d3js.org/d3.v3.js"></script>
<script>
var timeValue = 0;
var timeSlider = d3.select("body").append("input")
.attr("type", "range")
.attr("min", 0)
.attr("max", 10000)
.style("width", "500px");

window.setInterval(update, 20);

function update() {
    timeValue += 20;
    timeSlider.attr("value", timeValue);
}
</script>

最佳答案

根据我的经验,当您对输入控件进行动画处理时,并且用户执行任何导致控件聚焦的操作,动画会停止或行为异常,因为浏览器将确保输入控件位于其可以放置的位置用户看到的内容通常并不完全是您想要的位置。这并不是 FF 所独有的,我在 Chrome 和 IE 中也遇​​到过类似的问题。

要解决此问题,您必须在动画开始之前禁用输入控件,并在动画结束后再次启用它。

关于javascript - 如何正确设置范围输入元素的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19250920/

相关文章:

javascript - 嵌套 ng-repeat 索引不起作用 ||嵌套 ng-click 不起作用

javascript - D3.js -- 序数刻度(版本 3 到版本 4)

Javascript 决策语句无法正常工作

html - 检测 MySQL 中的换行符?

php - Facebook 照片 API

html - CSS 在页面末尾有一些空间,原因是 float 的?

javascript - d3.js - 当鼠标悬停在 SVG 容器上的这些元素上时,如何将光标设置为手?

javascript - 如何更新 D3 中的 TreeMap

javascript - 如何使用 <label >&lt;input ><button > 在 &lt;input > 中启用自动完成

javascript - 修复验证表单中的输入错误和延续问题