【发布时间】:2017-03-09 06:11:35
【问题描述】:
我有一个简单的滑块,分为 24 个步骤 (0-23),每个步骤代表一天中的一个小时。我的目标是为滑块 设置一次动画 以便每秒输入和滑块的值增加一 - 从 0 开始到 23 然后停止(总共 24 秒)。然后停止(循环结束)。
.map-overlay input {
background-color: transparent;
display: inline-block;
width: 100%;
position: relative;
margin: 0;
cursor: ew-resize;
}
<div class='map-overlay-inner'>
<h2>Passengers by hour</h2>
<label id='variable'></label>
<input id='slider' type='range' min='0' max='23' step='1' value='0' />
</div>
var variables = [ '0', '1', '2', '3', '4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23',
];
function filterBy(variable) {
var filters = ['==', 'variable', variable];
map.setFilter('circles', filters);
map.setFilter('labels', filters);
// Set the label to the hour
document.getElementById('variable').textContent = variables[variable];
}
document.getElementById('slider').addEventListener('input', function(e) {
var variable = e.target.value
filterBy(variable);
});
此时,手动输入的值会改变为e.target.value
但是,当我实施此解决方案以将滑块移动一个时,textContent 并没有改变,并且由于某种原因滑块从 1 跳到 11。为什么会发生这种情况,谁能推荐一个解决方案?
var myVar = setInterval(myTimer, 1000);
function myTimer() {
document.getElementById("slider").value += 1;
}
【问题讨论】:
标签: javascript jquery slider