>  기사  >  웹 프론트엔드  >  창 크기 조정이 완료된 후 $(window).resize()를 한 번만 실행하는 방법은 무엇입니까?

창 크기 조정이 완료된 후 $(window).resize()를 한 번만 실행하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-04 22:38:02693검색

How to Execute $(window).resize() Only Once After Window Resizing is Complete?

타겟팅 이벤트 완료: $(window).resize() 실행 후

$(window).resize(function() { ... }) 활용 시 브라우저 창 크기 조정을 모니터링하기 위해 수동 창 조정 중에 여러 이벤트가 발생할 수 있습니다. 이 문제는 창 테두리를 드래그할 때마다 이벤트가 트리거되어 바람직하지 않은 동작이 발생하기 때문에 발생합니다. 이 문제를 해결하기 위해 크기 조정 프로세스가 완료된 후에만 실행이 발생하도록 하는 솔루션을 살펴보겠습니다.

아래 코드 조각은 코드의 다양한 부분에서 활용할 수 있는 실용적인 솔루션을 제공합니다.

<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>

이 솔루션을 활용하려면 다음 단계를 따르세요.

  1. 창 크기 조정을 위한 사용자 정의 이벤트 리스너를 구현하세요.
<code class="javascript">$(window).resize(function () {</code>
  1. 이벤트 리스너 내에서 , waitForFinalEvent를 호출하여 콜백 시간 초과를 설정합니다.
<code class="javascript">    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");</code>

500 매개변수는 500밀리초의 지연을 나타내며 크기 조정 프로세스가 완료되는 데 충분한 시간을 허용합니다. UniqueId 매개변수는 여러 콜백이 간섭 없이 동일한 시간 초과 메커니즘을 활용할 수 있도록 보장합니다.

이 수정된 솔루션을 사용하면 창 크기 조정이 완료된 후 실행되는 여러 콜백을 정의하여 코드의 다양한 섹션을 효과적으로 처리할 수 있습니다.

위 내용은 창 크기 조정이 완료된 후 $(window).resize()를 한 번만 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.