在Javascript中按顺序向上和向下计数到指定的数字

在Javascript中按顺序向上和向下计数到指定的数字,javascript,Javascript,我试图让这个脚本计数到一个指定的数字,然后按如下方式返回到一个指定的数字:19200、38400、57600、76800、96000、76800、57600、38400、19200-重复。到目前为止,这是我所拥有的,但我似乎无法按上面的顺序倒计时,它再次从19200年重新开始 $(function() { var seconds = 19200; var timerId = setInterval(function() { seconds = seconds + 19200; $

我试图让这个脚本计数到一个指定的数字,然后按如下方式返回到一个指定的数字:19200、38400、57600、76800、96000、76800、57600、38400、19200-重复。到目前为止,这是我所拥有的,但我似乎无法按上面的顺序倒计时,它再次从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);