停止 setTimeout 循环
使用精灵创建加载指示器时,通常依赖循环来循环背景位置。一种方法是使用 setTimeout 函数,但是如果您需要在加载过程完成时停止循环怎么办?
setTimeout 实现
JavaScript 中的 setTimeout 函数返回一个计时器句柄,允许您使用clearTimeout 函数取消超时。要实现此功能,您可以在 setBgPosition 函数中创建一个 stop() 函数:
function setBgPosition() { var c = 0, timer = 0; ... return stop; function stop() { if (timer) { clearTimeout(timer); timer = 0; } } }
要使用此功能,您可以将 setBgPosition 函数分配给一个变量,然后调用 stop() 函数来停止循环:
var stop = setBgPosition(); // ... later ... stop();
替代方法: setInterval
使用 setTimeout 的另一种方法是 setInterval,它以指定的时间间隔重复执行函数。以下是如何将其与clearInterval一起使用:
function setBgPosition() { ... return setInterval(run, 200); }
停止循环:
var timer = setBgPosition(); // ... later ... clearInterval(timer);
但是,建议探索用于检测完成条件并允许setBgPosition停止循环的选项循环本身。这种方法在处理装载操作时提供了更好的控制和灵活性。
以上是如何停止加载指标的 setTimeout 或 setInterval 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!