在Javascript中按顺序向上和向下计数到指定的数字
我试图让这个脚本计数到一个指定的数字,然后按如下方式返回到一个指定的数字:19200、38400、57600、76800、96000、76800、57600、38400、19200-重复。到目前为止,这是我所拥有的,但我似乎无法按上面的顺序倒计时,它再次从19200年重新开始在Javascript中按顺序向上和向下计数到指定的数字,javascript,Javascript,我试图让这个脚本计数到一个指定的数字,然后按如下方式返回到一个指定的数字:19200、38400、57600、76800、96000、76800、57600、38400、19200-重复。到目前为止,这是我所拥有的,但我似乎无法按上面的顺序倒计时,它再次从19200年重新开始 $(function() { var seconds = 19200; var timerId = setInterval(function() { seconds = seconds + 19200; $
$(function() {
var seconds = 19200;
var timerId = setInterval(function() {
seconds = seconds + 19200;
$("#counter").text(seconds);
if (seconds > "76800") {
clearInterval(seconds);
seconds = seconds - "19200";
}
}, 500);
});
逻辑和条件有点问题
if (seconds > "76800") {
将始终尝试将秒数保持在76800以上
相反,您需要一个标志来跟踪计数的方向。请查看以下内容:
更新:
工作演示
$(函数(){
var增量=19200;
var秒=增量;
var countUp=true;
var timerId=setInterval(函数(){
$(“#计数器”).text(秒);
如果(倒计时){
秒+=增量;
}否则{
秒-=增量;
}
如果(倒计时和秒数>增量*4){
倒计时=假;
}否则,如果(!countUp&&seconds检查以下功能
$(function() {
var seconds = 19200;
action = 'add';
var timerId = setInterval(function() {
$("#counter").text(seconds);
if (seconds == 96000) {
action = 'remove';
} else if (seconds == 19200) {
action = 'add'
}
if (action == 'add')
seconds += 19200;
else if (action == 'remove')
seconds -= 19200;
}, 500);
});
我觉得这更优雅一点
var increment = 19200,
seconds = increment;
var timer = setInterval(function() {
console.log(seconds);
seconds += increment;
if (seconds > 76800 || seconds < 19200) {
increment *= -1;
}
}, 500);
var增量=19200,
秒=增量;
var timer=setInterval(函数(){
console.log(秒);
秒+=增量;
如果(秒数>76800 | |秒数<19200){
增量*=-1;
}
}, 500);
糟糕透了,谢谢!但是如何防止计数返回到0并保持在19200作为其最低值?更新了JSFIDLE和上面的代码以减少硬编码值,并将下限设置为19200而不是0。
var increment = 19200,
seconds = increment;
var timer = setInterval(function() {
console.log(seconds);
seconds += increment;
if (seconds > 76800 || seconds < 19200) {
increment *= -1;
}
}, 500);