나만의 개발 공간

웹 페이지 복귀 탐지 이벤트 처리(visibilitychange) 본문

Next.js

웹 페이지 복귀 탐지 이벤트 처리(visibilitychange)

kkhcode 2025. 3. 4. 11:10
반응형

비디오 공통 컴포넌트를 작업하다 다른 탭을 클릭해도 이전 탭에 영상 소리가 노출된다는 사실을 알게 됐습니다.
이럴 때 사용할 수 있는 웹 페이지 복귀 탐지 이벤트 처리로 이전 탭 영상을 일시 중지 할 수 있습니다.

addEventListener("visibilitychange", (event) => {});

해당 이벤트는 브라우저 탭의 콘텐츠가 보여지거나 숨겨질 때 발생합니다.

// 1번째 방법
useEffect(() => {
	const video = document.querySelector('video');
    document.addEventListener('visibilitychange', () => {
    	if (document.visibilityState === "visible") {
        	// 해당 페이지가 보이면 영상 재생
        	video.play();
        } else {
        	// 해당 페이지가 노출되지 않으면 영상 멈춤
        	video.pause();
        }
    });
  }, []);

// 2번째 방법
useEffect(() => {
	const video = document.querySelector('video');
    document.addEventListener('visibilitychange', () => {
    	if (document.hidden) {
        	// 해당 페이지가 노출되지 않으면 영상 멈춤
        	video.pause();
        } else {
        	// 해당 페이지가 노출되면 영상 재생
            video.play();
        }
    });
  }, []);


듀얼 모니터인 경우 해당 코드가 적용되지 않을 수 있습니다.

틀린 부분이 있으시면 말씀해주세요~~!!

반응형

'Next.js' 카테고리의 다른 글

CSV 파일을 Excel 파일로 변환해서 다운로드하기  (0) 2025.02.02
CSV 파일 생성 및 Append 하기  (0) 2025.02.02
next-i18next 다국어 지원  (0) 2022.02.17
Comments