从 10 开始倒计时,并在计时器反应为 0 时重复
Count down from 10 and repeat it when the timer has reacted 0
我想从 10 秒倒计时到 0。当它达到 0 时,DIV 将重新加载,计时器将重新开始。我有这个函数,可以让它完全按照我想要的方式做,但问题是当倒计时达到 0 并回到 10 时,它将计数 -1 重新加载 -2 重新加载 -3 重新加载 -4 重新加载等等。这不是我想要的!:)
这是我的代码:
var time = setInterval(countdown, 1000);
function countdown() {
var count = 10;
countdown = setInterval(function() {
$('#countdown').html(count + ' sekunder kvar');
if(count == 0) {
$('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
clearInterval(countdown);
}
count--;
}, 1000);
}
如何解决我的问题,使计时器从 10 倒计时到 0 并永远重复倒计时?
提前谢谢。
编辑
当此函数第一次达到 0 并重新开始时,它的计数如下所示:10、9、8、10、7、6、5、4、3、2、1、10、9、8、7、10、6、5、4、3、2、1、10、9、8、10、7、6 等等。为什么它使用此代码会像这样工作?
function countdown() {
var count = 10;
var timerId = setInterval(function() {
$('#countdown').html(count + ' sekunder kvar');
count--;
if(count == 0) {
$('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
clearInterval(timerId);
countdown();
}
}, 1000);
}
countdown();
提前感谢!
我在你的脚本中看到了很多问题......所以不确定你是如何让它工作的..
-
函数名不能有-
,所以调用将不起作用:S -
countdown
是function countdown()
中的全局变量,与函数名称相同,实际上是countdownception
- 当您调用
countdown
时,您每一秒都在有效地创建新Interval
要实现您想要的,请尝试更简单的方法:
function countdown() {
// your code goes here
var count = 10;
var timerId = setInterval(function() {
count--;
console.log(count);
if(count == 0) {
// your code goes here
count = 10;
}
}, 1000);
}
countdown();
http://jsfiddle.net/Xrbm5/13/
看看你的代码在做什么。
您正在设置每秒运行的间隔。没关系。
不好的是,每一秒,这个间隔都在创建一个新的间隔,从 10 开始单独倒计时。
此外,您还将countdown
设置为全局变量。因此,当你的第一个计数器达到零时,它实际上会清除 LAST 计时器,让第一个计时器愉快地继续变成负数,同时你一直在生成新的间隔。
总的来说,这是一场灾难。
如果您只想每 10 秒更新一次页面,则:
setTimeout(function() {
// run some code
},10000);
如果要倒计时,则在每个偶数 10 处重置计数器。下面添加了启动和停止功能,它从中断的地方重新统计。此外,如果正在运行,单击"开始"不会启动另一个。
var weatherRefresh = (function() {
var count = 10;
var timerRef;
return {
start: function() {
// If already running, leave it running
if (timerRef) return;
timerRef = setInterval(function() {
// Display count
document.getElementById('dislayedCount').innerHTML = count;
if (!count--) {
// count is zero, refresh weather info
// and start again
count = 10;
}
}, 1000);
},
stop: function() {
timerRef && clearInterval(timerRef);
timerRef = null;
}
};
}());
还有一些按钮可以使其工作(或在页面加载时启动它):
<button onclick="weatherRefresh.start();">Start</button>
<button onclick="weatherRefresh.stop();">Stop</button>
请注意,该函数大约每秒都会运行一次,如果系统繁忙,它不会按时运行并且会缓慢漂移,但每次不会漂移太多,所以可能无关紧要。
<script>
var timeone = 10;
setInterval(function () {
if (timeone <= 10 && timeone >= 0) {
document.getElementById("countdown").innerHTML = "Counting down from " +
timeone; }
if (timeone == 0) { timeone = 11; }
timeone--;
}, 500);
</script>
<div id="countdown"></div>
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 如何制作两个倒计时计时器,如果一个开始,另一个会停止
- 如何连续运行计时器?(当你刷新时,不要从头开始)
- 从 10 开始倒计时,并在计时器反应为 0 时重复
- 周期性倒计时计时器,每18小时一次,有特定的开始日期
- 在初始页面加载时启动计时器.如果他们离开和返回,必须从第一次装载开始计数
- 如何制作一个Javascript计时器,数字从700000000开始,每1秒倒计时2.5
- 为什么我的倒数计时器没有开始和停止?
- 从0开始加载每个页面的计数计时器
- 音频不以计时器开始
- 在javascript中创建一个倒计时计时器,在1小时后开始倒计时
- 如何使从02:00开始的计时器达到00:00,然后在06:00重新开始?
- JS网站倒计时计时器从打开页面开始计数