ホームページ > ウェブフロントエンド > CSSチュートリアル > インジケーターをロードするための setTimeout または setInterval ループを停止するにはどうすればよいですか?

インジケーターをロードするための setTimeout または setInterval ループを停止するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-03 03:05:11
オリジナル
986 人が閲覧しました

How to Stop a setTimeout or setInterval Loop for Loading Indicators?

setTimeout ループの停止

スプライトを使用して読み込みインジケーターを作成する場合、背景の位置を循環するループに依存するのが一般的です。 1 つのアプローチには 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート