ホームページ > ウェブフロントエンド > jsチュートリアル > サイズ変更操作が完了した後にのみアクションを実行するにはどうすればよいですか?

サイズ変更操作が完了した後にのみアクションを実行するにはどうすればよいですか?

DDD
リリース: 2024-11-08 05:40:02
オリジナル
606 人が閲覧しました

How to Execute Actions Only After a Resize Operation Has Finished?

最適なアクションの実行のために 'resize' イベントの 'End' を待ちます

イベント駆動型プログラミングでは、サイズを処理するのが一般的です「resize」イベントを使用して変更します。通常はウィンドウまたはその他のサイズ変更可能な要素に割り当てられます。ただし、サイズ変更操作が発生すると、プロセス中に 'resize' イベントが複数回トリガーされ、イベント ハンドラーの実行が冗長になります。

'resize' イベントの 'End' をキャプチャ

この問題に対処し、サイズ変更が完了した場合にのみアクションを実行するには、「setTimeout()」と「clearTimeout()」を使用する手法を採用できます。

解決策:

サイズ変更アクションのイベント ハンドラーとして機能する関数 'resizew()' を作成します。

function resizedw() {
  // Your action to be performed when resizing finishes
}
ログイン後にコピー

変数を宣言します。 「doit」を実行し、「null」として初期化します。この変数は、「setTimeout()」によって返されたタイムアウト ID を保持します。

var doit = null;
ログイン後にコピー

イベント リスナーを 'window' オブジェクトの 'onresize' イベントにアタッチします。

window.onresize = function() {
ログイン後にコピー

「doit」変数に関連付けられた保留中のタイムアウト要求をキャンセルするには、「clearTimeout()」を使用します。

  clearTimeout(doit);
ログイン後にコピー

「setTimeout()」の結果を「doit」変数に割り当てます。これにより、100 ミリ秒の遅延後に「resizew()」の実行がスケジュールされます。

  doit = setTimeout(resizedw, 100);
};
ログイン後にコピー

サイズ変更操作が終了すると、「resizew()」をすぐにトリガーせずに「onresize」イベント ハンドラーが呼び出されます。 。指定された遅延 (100 ミリ秒) の後、「resizew()」が実行され、サイズ変更プロセスの完了がマークされます。

コード例:

次のコードは、次のコードを示します。このアプローチの実装:

function resizedw() {
  // Your action to be performed when resizing finishes
  console.log('Resizing finished!');
}

var doit = null;
window.onresize = function() {
  clearTimeout(doit);
  doit = setTimeout(resizedw, 100);
};
ログイン後にコピー

このソリューションは、サイズ変更プロセス中に関連するアクションが実行されないようにすることで、「サイズ変更」イベントを効果的に処理します。代わりに、アクションはサイズ変更操作が完全に完了した後にのみトリガーされます。

以上がサイズ変更操作が完了した後にのみアクションを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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