我会使用setTimeout()s 而不是setInterval(),如下所示:
var count = 0, dir = 1, end = [0, 10], index = 1, counter,
timer = function () {
console.log(count);
if (count === end[index]) {
dir = -dir;
index += dir;
counter = setTimeout(timer, 500);
return;
}
count += dir;
counter = setTimeout(timer, 500);
};
counter = setTimeout(timer, 500);
jsFiddle 的现场演示。
正如Bergi所说,也适用于setInterval():
var count = 0, dir = 1, end = [0, 10], index = 1,
counter = setInterval(function () {
console.log(count);
if (count === end[index]) {
dir = -dir;
index += dir;
return;
}
count += dir;
}, 500);
在 jsFiddle 有间隔的现场演示。
使用单独end数组的优点是,如果需要,您可以动态更改限制。