JS:setTimeout函数的UI计数
JS: UI countown for setTimeout function
我有一个每5秒运行reloadData()
函数的页面:
setTimeout('reloadData()', 5000);
我有一个元素,我想为reloadData()的每一秒更新一个从5到0的倒计时;
document.getElementById('countdown').value
达到这种效果的正确方法是什么?
示例:
reloadData() {}
启动- 元素"
countdown
"将显示:5…4…3。。。2…1…(以秒为间隔) reloadData(){}
再次启动
我不完全确定如何解释您的问题,但我猜您有一个函数reloadData
,应该每5秒运行一次。
现在,您将看到一个计数器,该计数器将从每秒5..1开始计算。
当计数器达到0时,您想重复,例如调用reloadData()
并再次计数?
var counter = 0;
setInterval(function() {
if (counter == 0) {
reloadData();
}
// do stuff with i which will be 0, 1, 2, 3, 4, 0, 1, 2, 3, 4
// ...
document.getElementById('countdown').value = 5 - counter;
// ...
counter++;
counter %= 5;
}, 1000);
更像是6秒,因为我在重新加载时会暂停一段时间,但您可以使用requestAnimationFrame调用您的函数(大约每秒60次),并检查日期以查看是否超过一秒。然后更新您的计数器。
如本例所示:
https://jsfiddle.net/subterrane/k2aacj4s/
输出div:
<div class="container" id="counter"></div>
某些脚本:
var counter = document.querySelector("#counter");
var count = 5;
var start = Date.now();
function work() {
if (count == 0) {
counter.innerText = "reload!";
} else {
counter.innerText = count;
}
var now = Date.now();
if (now >= start + 1000) {
start = now;
count--;
if(count < 0) count = 5;
}
window.requestAnimationFrame(work);
};
work();
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI自动完成突然停止工作
- 如何使用skip参数使用angular ui引导进行服务器端分页
- AngularJS UI路由器不能像ng路由器那样工作
- 我可以更改剑道UI网格吗's的外键值
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 停止jQuery UI滑块移动超过给定值
- 对id以某个字符串开头的元素进行计数
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- Jquery UI自动完成无法工作
- 语义ui如何使用javascript启用或禁用下拉列表
- jquery ui滑块上的滑块值
- jQuery UI可排序-多连接列表拖动
- 如何在Angular UI网格中选择下一行
- JS:setTimeout函数的UI计数
- 在jQuery UI日历上突出显示带有日期的计数
- 剑道UI图表中的分组和计数事件
- 获取剑道 UI 网格上的行计数
- 在JQuery UI中,当项目在可拉放区域之间拖动时,我如何减少计数