ホームページ  >  記事  >  ウェブフロントエンド  >  サイズ変更イベントの完了後にのみアクションをトリガーするにはどうすればよいですか?

サイズ変更イベントの完了後にのみアクションをトリガーするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-06 12:24:03328ブラウズ

How to Trigger an Action Only After the Resize Event Completes?

「サイズ変更」イベントの終了を待ってアクションをトリガーします

レスポンシブ デザインを使用する場合、多くの場合、サイズ変更プロセスが完全に終了した後にのみアクションを実行してください。ただし、$(window).resize() を使用した従来のイベント処理では、サイズ変更プロセス中に複数の呼び出しがトリガーされ、望ましくない動作が発生する可能性があります。

解決策: setTimeout() と clearTimeout() を使用する

目的の動作を実現するには、setTimeout() と clearTimeout() を組み合わせて使用​​できます。以下に例を示します。

function resizedw() {
  // Haven't resized in 100ms!
}

var doit;
window.onresize = function () {
  clearTimeout(doit);
  doit = setTimeout(resizedw, 100);
};

このアプローチでは、タイマーを利用して resizew() 関数の実行を遅らせます。サイズ変更イベントが発生すると、既存のタイマーがクリアされ、新しいタイマーが開始されます。サイズ変更プロセスが 100 ミリ秒以内に続く場合、タイマーは再びリセットされます。サイズ変更が 100 ミリ秒停止した場合にのみ、resizew() 関数が呼び出されます。

jsfiddle の例:

このソリューションの実際の例については、を参照してください。回答に記載されている jsfiddle リンクにアクセスしてください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。