我想创建一个从 50 到 1 的倒计时,但我不想在每个数字之间倒计时相同的时间量
I want to create a countdown from 50 down to 1, but I don't want to count down the same amount of time between each number
我想创建一个从 50 到 1 的倒计时,但我不想在每个数字之间倒计时相同的时间......就像如果这是 50 秒,我不希望它每秒倒数一个数字。 我正在尝试创建一个带有一点随机性的倒计时,所以可能需要 2 秒才能到达下一个数字,有时需要 .5 秒。 我正在尝试一直这样做到最后 10 秒,在计数器停止在数字 1 之前它会再慢一点。
这是我拥有的 HTML:
<span id="count">50</span>
Javascript:
sec = 50;
interval = setInterval(function () {
sec--;
document.getElementById('count').innerHTML = sec;
if (sec == 1) {
clearInterval(interval);
}
}, 1000);
JSFiddle: http://jsfiddle.net/aVrPG/
如何让它减慢最后 10 秒的速度,以及如何为其添加一点随机性?
至于更改间隔时间跨度,则无法使用 setInterval。 您需要使用 setTimeout。
sec = 50;
function interval(timespan){
setTimeout(function () {
sec--;
document.getElementById('count').innerHTML = sec;
if (sec > 10){
interval(1500);
}
if (sec > 1) {
interval(1000);
}
}, timespan);
}
interval(1000)
我不确定你想要随机性的地方。 但这应该为你指明正确的方向。JSFIDDLE
var sec = 50;
function execute() {
document.getElementById("count").innerHTML = sec;
}
(function loop() {
if(sec-- == 0) {
return // stop when we reach 0
}
setTimeout(function() {
execute();
loop()
}, Math.round(Math.random() * 1E3) + (sec <= 10 ? 2E3 : 500))
// random 1000 or 0 + 2000 if sec <=10 or 500 otherwise
})();
您必须改变间隔时间。创建一个新变量并在...嗯,500 和 2000?并且至少要在最后 10"秒"减慢速度。只需使用 if 子句。
试试这个
sec = 50;
interval = setInterval(function () {
sec--;
document.getElementById('count').innerHTML = sec;
if (sec == 1) {
clearInterval(interval);
}
}, (sec < 11) ? Math.floor(Math.random()*1000 + 500): Math.floor(Math.random()*1000 + 1500) );
没有测试这个编辑:嗯,它对我有好处。
相关文章:
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- RequireJS加载我没有的资源'我不想
- 我想遍历一个对象数组,我不想要任何重复项
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- IE11没有'我不想把重点放在“disabled”元素上
- 可以'我不想用BlackBerry Webworks 2来展示Toast
- 将参数传递给函数I don'我不想立即执行
- Jquery点击事件don'我不想开火
- 我需要创建一个事件侦听器.但是我不想使用任何框架
- 我可以'Don’我不想让我的程序继续下去;m使用document.write,因为它在html中使用JavaSc
- 页面卸载时,出现我不想要的确认框
- 不想返回整个对象,如何过滤掉我不想要的东西
- 当我添加警报(“现在它可以工作”);这个函数有效,但我不想要这个
- 我不想支持在 asp.net mvc web/intranet应用程序中关闭javascript
- 我想创建一个从 50 到 1 的倒计时,但我不想在每个数字之间倒计时相同的时间量
- 尽管设置了标头,但我不想使用 JSONP,但 cors 无法解析
- 表单值,我不想重置它们
- 谷歌地图v3-地图没有'我不想从mysqldb加载标记
- 悬停函数没有'I don’我不想工作
- 等待 ajax 返回的正确方法(我不想使用成功处理程序