ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript/jQuery でウィンドウのサイズ変更イベントを正確に検出するにはどうすればよいですか?

JavaScript/jQuery でウィンドウのサイズ変更イベントを正確に検出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 15:30:02300ブラウズ

How to Detect Accurate Window Resize Events in JavaScript/jQuery?

JavaScript/jQuery での正確なウィンドウ サイズ変更イベントの検出

$(window).resize を使用してウィンドウ サイズの変更を監視する場合、一般的に次のことが行われます。手動によるサイズ変更中に複数のイベントが発生します。サイズ変更が完了した後でのみコードを実行する必要がある場合、これは問題となる可能性があります。

解決策:

この問題に対処するには、waitForFinalEvent 関数を利用できます。

<code class="javascript">var waitForFinalEvent = (function () {
  var timers = {};
  return function (callback, ms, uniqueId) {
    if (!uniqueId) {
      uniqueId = "Don't call this twice without a uniqueId";
    }
    if (timers[uniqueId]) {
      clearTimeout (timers[uniqueId]);
    }
    timers[uniqueId] = setTimeout(callback, ms);
  };
})();</code>

この関数は、最後のサイズ変更イベント後の指定された遅延 (デフォルトでは 500 ミリ秒) の後にのみコールバックが実行されるようにします。 uniqueId パラメータを使用すると、競合することなく複数のコールバックを使用できます。

使用法:

この関数を利用するには、コードを次のように変更できます:

<code class="javascript">
$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});</code>

このソリューションを実装することで、コードがウィンドウ サイズ変更イベントに正確に応答し、サイズ変更が完了した後にのみ実行されるようにすることができます。

以上がJavaScript/jQuery でウィンドウのサイズ変更イベントを正確に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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