Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML5 표준 이벤트란 무엇일까? 종류별 이벤트 속성 완벽 정리

HTML5 표준 이벤트란?

사용자가 웹사이트를 방문하면 텍스트나 이미지를 클릭하고, 링크를 따라 이동하며, 특정 요소 위에 마우스 커서를 올리는 등 다양한 행동을 합니다. 이처럼 페이지 안에서 일어나는 모든 상호작용이 바로 자바스크립트(JavaScript)에서 말하는 이벤트(Event)입니다.

개발자는 이벤트 핸들러(event handler)를 자바스크립트 또는 VBScript로 작성할 수 있으며, 작성된 핸들러를 HTML 태그의 이벤트 속성(attribute) 값으로 지정하여 사용합니다. HTML5 명세에는 아래와 같이 매우 다양한 이벤트 속성이 정의되어 있는데, 이해하기 쉽도록 카테고리별로 분류해서 정리했습니다.

1. 윈도우 및 문서(Window / Document) 이벤트

브라우저 창과 문서 전체의 상태 변화와 관련된 이벤트입니다.

속성설명
onafterprintscript문서가 인쇄된 직후에 실행됩니다.
onbeforeprintscript문서가 인쇄되기 전에 실행됩니다.
onbeforeonloadscript문서가 로드되기 전에 실행됩니다.
onblurscript창(window)이 포커스를 잃었을 때 실행됩니다.
onerrorscript오류가 발생했을 때 실행됩니다.
onfocusscript창이 포커스를 얻었을 때 실행됩니다.
onhaschangescript문서 내용이 변경되었을 때 실행됩니다.
onloadscript문서 로딩이 완료되었을 때 실행됩니다.
onmessagescript메시지 이벤트가 발생했을 때 실행됩니다.
onofflinescript문서가 오프라인 상태가 되었을 때 실행됩니다.
ononlinescript문서가 온라인 상태로 전환되었을 때 실행됩니다.
onpagehidescript창이 화면에서 숨겨졌을 때 실행됩니다.
onpageshowscript창이 화면에 표시되었을 때 실행됩니다.
onpopstatescript창의 히스토리(history)가 변경되었을 때 실행됩니다.
onredoscript문서에서 다시 실행(redo) 작업이 수행될 때 실행됩니다.
onresizescript창 크기가 조절되었을 때 실행됩니다.
onstoragescript웹 스토리지 영역이 업데이트되었을 때 실행됩니다.
onundoscript문서에서 실행 취소(undo) 작업이 수행될 때 실행됩니다.
onunloadscript사용자가 문서를 떠날 때 실행됩니다.

2. 폼(Form) 이벤트

입력 폼과 관련된 사용자 상호작용 이벤트입니다.

속성설명
onformchangescript폼이 변경되었을 때 실행됩니다.
onforminputscript폼이 사용자 입력을 받았을 때 실행됩니다.
onchangescript요소의 값이 변경되었을 때 실행됩니다.
oninputscript요소가 사용자 입력을 받았을 때 실행됩니다.
oninvalidscript요소가 유효하지 않을 때 실행됩니다.
onselectscript요소가 선택되었을 때 실행됩니다.
onsubmitscript폼이 제출(submit)될 때 실행됩니다.

3. 키보드(Keyboard) 이벤트

키보드 입력과 관련된 이벤트입니다.

속성설명
onkeydownscript키를 누르는 순간 실행됩니다.
onkeypressscript키를 눌렀다가 뗐을 때 실행됩니다.
onkeyupscript키에서 손을 뗐을 때 실행됩니다.

4. 마우스(Mouse) 이벤트

마우스 클릭, 이동, 스크롤 등과 관련된 가장 많이 사용되는 이벤트입니다.

속성설명
onclickscript마우스로 클릭했을 때 실행됩니다.
ondblclickscript마우스를 더블클릭했을 때 실행됩니다.
oncontextmenuscript컨텍스트 메뉴(마우스 우클릭 메뉴)가 호출될 때 실행됩니다.
onmousedownscript마우스 버튼을 누르는 순간 실행됩니다.
onmousemovescript마우스 포인터가 이동할 때 실행됩니다.
onmouseoutscript마우스 포인터가 요소 밖으로 벗어났을 때 실행됩니다.
onmouseoverscript마우스 포인터가 요소 위로 진입했을 때 실행됩니다.
onmouseupscript마우스 버튼에서 손을 뗐을 때 실행됩니다.
onmousewheelscript마우스 휠을 회전할 때 실행됩니다.
onscrollscript요소의 스크롤바가 스크롤될 때 실행됩니다.

5. 미디어(Media) 이벤트

오디오·비디오 등 멀티미디어 요소의 재생 상태와 관련된 이벤트입니다.

속성설명
onabortscript재생이 중단(abort)되었을 때 실행됩니다.
oncanplayscript미디어 재생이 가능하지만 버퍼링으로 일시 중단될 수 있는 상태일 때 실행됩니다.
oncanplaythroughscript버퍼링 없이 끝까지 재생할 수 있는 상태일 때 실행됩니다.
ondurationchangescript미디어 길이(duration)가 변경되었을 때 실행됩니다.
onemptiedscript미디어 리소스가 갑자기 비워졌을 때 실행됩니다.
onendedscript미디어 재생이 끝에 도달했을 때 실행됩니다.
onloadeddatascript미디어 데이터가 로드되었을 때 실행됩니다.
onloadedmetadatascript미디어의 길이 등 메타데이터가 로드되었을 때 실행됩니다.
onloadstartscript브라우저가 미디어 데이터 로드를 시작할 때 실행됩니다.
onpausescript미디어가 일시정지되었을 때 실행됩니다.
onplayscript미디어 재생이 시작되기 직전에 실행됩니다.
onplayingscript미디어 재생이 실제로 시작되었을 때 실행됩니다.
onprogressscript브라우저가 미디어 데이터를 내려받는 중일 때 실행됩니다.
onratechangescript미디어 재생 속도가 변경되었을 때 실행됩니다.
onreadystatechangescript준비 상태(ready-state)가 변경되었을 때 실행됩니다.
onseekedscript미디어 탐색(seeking)이 종료되었을 때 실행됩니다.
onseekingscript미디어 탐색(seeking)이 시작되었을 때 실행됩니다.
onstalledscript미디어 데이터를 가져오는 과정에서 오류가 발생했을 때 실행됩니다.
onsuspendscript미디어 파일 전체를 내려받기 전에 브라우저가 데이터 가져오기를 중단했을 때 실행됩니다.
ontimeupdatescript미디어의 재생 위치가 변경되었을 때 실행됩니다.
onvolumechangescript볼륨이 변경되거나 음소거(mute)로 설정되었을 때 실행됩니다.
onwaitingscript미디어가 일시 중단되었지만 곧 재개될 것으로 예상될 때 실행됩니다.

6. 드래그 앤 드롭(Drag & Drop) 이벤트

요소를 끌어다 놓는 동작과 관련된 이벤트입니다.

속성설명
ondragscript요소를 드래그하는 동안 실행됩니다.
ondragendscript드래그 작업이 종료되었을 때 실행됩니다.
ondragenterscript요소가 유효한 드롭 대상 위로 드래그되어 진입했을 때 실행됩니다.
ondragleavescript요소가 유효한 드롭 대상에서 벗어났을 때 실행됩니다.
ondragoverscript요소가 유효한 드롭 대상 위를 지나가는 동안 실행됩니다.
ondragstartscript드래그 작업이 시작되는 순간 실행됩니다.
ondropscript드래그된 요소가 드롭(dropped)되었을 때 실행됩니다.

마무리

HTML5의 표준 이벤트 속성들은 단순히 값만 지정하면 되므로 초보자도 쉽게 접근할 수 있습니다. 다만 규모가 큰 프로젝트에서는 HTML 속성 대신 addEventListener() 메서드를 사용해 자바스크립트 코드와 마크업을 분리하는 것이 유지보수 측면에서 더 권장됩니다. 각 이벤트의 발생 시점과 특성을 정확히 이해하고 활용한다면, 사용자 경험이 뛰어난 인터랙티브 웹 페이지를 만들 수 있습니다.