Youtube 같은 웹사이트는 사용자가 웹페이지를 최소화했거나 다른 탭을 보고 있는지를 체크한 후 재생 중인 동영상의 화질을 낮추거나, 화면은 내보내지 않고 음성만 재생하거나, 자동 재생이 되지 않도록 막아 데이터 전송량을 줄이는 동작을 합니다.
visibilitychange 이벤트에 리스너로 등록된 함수는 웹페이지의 visibility 상태가 변하면, 즉 사용자가 탭을 다른 탭으로 변경하거나 원래 탭으로 복귀하는 등의 행동을 취하면 실행되게 됩니다.
Page Visibility API는 웹페이지가 visible 또는 hidden 상태를 확인하는 기능을 제공합니다.
function handleVisibilityChange() {
if(document.hidden) {
// the page is hidden
} else {
// the page is visible
}
}
document.addEventListener("visibilitychange", handleVisibilityChange, false);
위와 같이 코드를 작성해서 브라우저 창을 최소화해서 내리거나 다른 탭으로 이동하면 슬라이드 동영상을 자동 재생을 멈출 수 있게 됩니다.
또한, 개발자도구 콘솔 창에 아래 코드를 입력해 보면 현재 웹페이지에 visibilitychange 이벤트가 등록되었는지 확인 가능합니다.
getEventListeners(document).visibilitychange
'Javascript' 카테고리의 다른 글
video 태그 m3u8 포맷 스트리밍 지원여부 확인 (0) | 2021.03.30 |
---|---|
npm 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램... 오류 해결 방법 (0) | 2021.03.24 |
javascript reduce 배열 메서드 (0) | 2021.03.24 |
javascript 정리 (0) | 2021.03.24 |
javascript 101 (0) | 2021.03.24 |
개의 댓글