可多次使用的Javascript倒计时计时器
Javascript countdown timer with multiple use
我有一个java脚本倒计时函数,它工作得很好,但总是只显示一个结果。我想要的是,就像在php中一样,我给出一个值(在我们的例子中是剩余的时间(,然后它开始倒计时。我想在同一页面上显示不同的倒计时计时器,但这似乎是一个比我想象的更大的问题,遗憾的是,我无法单独找到答案:/
这就是我使用的功能,有人能帮我修改它吗,这样我就能得到我想要的吗?
在这里的第一个答案之后,我仍然没有得到我想要的:(这是我已经尝试过的:
我的php函数:
function count_down_timer($time,$id) {
echo "<script language='"JavaScript'"><!--
var count = $time;
var counter=setInterval(timer, 1000);
function timer() {
count=count-1;
var h = Math.floor(count/3600);
var m = Math.floor(count % 3600/60);
if(h == 1) { var h_txt = h + ' hour'; } else if(h > 1) { var h_txt = h + ' hours'; } else { var h_txt = ''; }
if(m == 1) { var m_txt = m + ' minute'; } else if(m > 1) { var m_txt = m + ' minutes'; } else { var m_txt = '< 1 minute'; }
if(h > 0 && m > 0) { var and = ' and '; } else { var and = ''; }
document.getElementById('"$id'").innerHTML = h_txt + and + m_txt;
}
//--></script>";
}
我的结果:
<?php
count_down_timer(1000,'timer');
count_down_timer(4000,'test');
?>
<span id="timer"></span><p>
<span id="test"></span>
两者给出的最新时间均为4000。
代码不起作用的原因是您只有一个名为count
的全局变量。因此,在第二次调用count_down_timer()
时,计时器值变为4000。如果要保留两个单独的计数,则应为计数变量指定不同的名称。
我也只回显您的javascript timer()
函数一次。它不需要在每次运行时都得到响应。
此外,我会完全修改你的php函数,这样它所能做的就是:
<?php
function count_down_timer($time,$id){
echo "var ".$id."Count = $time;
setInterval(function(){
".$id."Count = ".$id."Count - 1;
timer(".$id."Count, '$id');
}, 1000);";
}
?>
这样你就可以说:
<?php
count_down_timer(1000, 'test');
count_down_timer(4000, 'timer');
?>
这将是您最终输出的目标(我添加了计数器,只是为了让您可以看到它的工作(:
function timer(count, id) {
var h = Math.floor(count / 3600);
var m = Math.floor(count % 3600 / 60);
var h_txt = '';
var m_txt = '';
if (h == 1) {
h_txt = h + ' hour';
} else if (h > 1) {
h_txt = h + ' hours';
}
if (m == 1) {
m_txt = m + ' minute';
} else if (m > 1) {
m_txt = m + ' minutes';
} else {
m_txt = '< 1 minute';
}
if (h > 0 && m > 0) {
var and = ' and ';
} else {
var and = '';
}
document.getElementById(id).innerHTML = h_txt + and + m_txt + ' and count is ' + count;
}
var testCount = 1000;
setInterval(function() {
testCount = testCount - 1;
timer(testCount, 'test');
}, 1000);
var timerCount = 4000;
setInterval(function() {
timerCount = timerCount - 1;
timer(timerCount, 'timer');
}, 1000);
<span id="timer">
</span><p></p>
<span id="test"></span>
您可以创建一个数组来存储信息。数组的每个元素都有该计时器的跨度id和剩余时间。计时器将每秒递减每个计时器的剩余时间。
PHP页面需要在数组中打印一个元素,并为每个计时器打印一个跨度。
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 结束后Javascript倒计时计时器重定向
- 停止javascript倒计时
- 设置Javascript倒计时计时器的初始值
- 自调整Javascript倒计时
- JavaScript倒计时计时器不会显示两次
- 如何设置此javascript倒计时计时器的样式
- 需要在 javascript 倒计时达到 0 后替换字符串
- 从d:h:m:s开始的javascript倒计时
- 创建php/javascript倒计时计时器时出现问题
- Javascript倒计时将在0:00停止
- JavaScript倒计时;不能在Safari中工作
- foreach循环中的Javascript倒计时时钟
- javascript倒计时并更新数据库php
- Javascript倒计时越来越慢
- 我想在 0 处停止这个 JavaScript 倒计时
- Javascript 倒计时时间无法显示
- 可多次使用的Javascript倒计时计时器
- Javascript倒计时在每次运行后都会变得更快