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

HTML DOM Area 객체 완벽 가이드: 이미지 맵 클릭 영역 다루기

HTML DOM Area 객체는 HTML의 이미지 맵(image map)과 연관된 객체입니다. Area는 기본적으로 이미지 맵 내부에서 클릭 가능한 영역을 나타냅니다.

<area> 요소는 자바스크립트를 통해 생성하고 접근할 수 있으며, 이를 활용하면 사용자 입력에 따라 맵 내부의 클릭 영역을 변경하거나 이미지 맵의 모양(shape) 등을 동적으로 수정할 수 있습니다. 또한 area 요소 내부의 링크를 조작하는 용도로도 활용할 수 있습니다.

Area 객체의 주요 속성

Area 객체에서 사용할 수 있는 주요 속성은 다음과 같습니다.

속성설명
altarea 요소의 alt 속성값을 설정하거나 반환합니다.
coordsarea의 좌표(coords) 속성값을 설정하거나 반환합니다.
hashhref 속성값 중 앵커(#) 부분을 설정하거나 반환합니다.
hosthref 속성값 중 호스트명과 포트 부분을 함께 설정하거나 반환합니다.
hostnamehref 속성값 중 호스트명 부분을 설정하거나 반환합니다.
hrefarea의 href 속성값을 설정하거나 반환합니다.
noHrefarea의 nohref 속성값을 설정하거나 반환합니다. (HTML5에서 폐기됨)
originhref 속성값 중 프로토콜, 호스트명, 포트 부분을 반환합니다.
passwordhref 속성값 중 비밀번호 부분을 설정하거나 반환합니다.
pathnamehref 속성값 중 경로(pathname) 부분을 설정하거나 반환합니다.
porthref 속성값 중 포트 부분을 설정하거나 반환합니다.

예제 코드

다음은 Area 객체를 활용한 실제 예제입니다.

<!DOCTYPE html>
<html>
<body>
<img
src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/New7Wonders.jpg/276pxNew7Wonders.jpg" width="400" height="400" usemap="#7Wonders">
<map id="WonderWorld" name="7Wonders">
</map>
<p>버튼을 클릭하면 '세계 7대 불가사의' 중 하나인 "Maya City"로 연결되는 AREA 요소가 생성됩니다.</p>
<button onclick="myWonder()">CLICK IT</button>
<p id="SAMPLE"></p>
<script>
   function myWonder() {
      var x = document.createElement("AREA");
      x.setAttribute("href", "https://en.wikipedia.org/wiki/Maya_city");
      x.setAttribute("shape", "circle");
      x.setAttribute("coords", "124,58,16");
      document.getElementById("WonderWorld").appendChild(x);
      document.getElementById("SAMPLE").innerHTML = "AREA 요소가 생성되었으며,
      이제 Maya City를 클릭할 수 있습니다.";
   }
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

HTML DOM Area 객체 완벽 가이드: 이미지 맵 클릭 영역 다루기

CLICK IT 버튼을 클릭한 후의 화면입니다.

HTML DOM Area 객체 완벽 가이드: 이미지 맵 클릭 영역 다루기

이제 이미지 위의 "Maya city" 영역을 클릭하면 해당 위키피디아 페이지로 이동합니다.

코드 상세 설명

위 예제의 동작 방식을 단계별로 살펴보겠습니다.

먼저 img 태그로 이미지를 삽입하고, 너비·높이·usemap 속성을 지정했습니다.

<img data-fr-src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/New7Wonders.jpg/276pxNew7Wonders.jpg" width="400" height="300" usemap="#7Wonders">

그다음에는 나중에 area 요소를 추가할 수 있도록 비어 있는 map 요소를 생성했습니다.

<map id="WonderWorld" name="7Wonders"></map>

이어서 클릭 시 myWonder() 함수를 실행하는 CLICK IT 버튼을 만들었습니다.

<button onclick="myWonder()">CLICK IT</button>

myWonder() 함수는 먼저 AREA 요소를 생성하여 변수 x에 할당한 뒤, href, shape, coords 등 다양한 속성을 설정합니다. 마지막으로 해당 AREA 요소를 이미지 맵의 자식 노드로 추가하고, innerHTML을 통해 id가 "SAMPLE"인 문단에 생성 완료 메시지를 표시합니다. 이후 사용자는 이미지 위의 "Maya city" 영역을 클릭할 수 있게 됩니다.

function myWonder() {
   var x = document.createElement("AREA");
   x.setAttribute("href", "https://en.wikipedia.org/wiki/Maya_city ");
   x.setAttribute("shape", "circle");
   x.setAttribute("coords", "124,58,16");
   document.getElementById("WonderWorld").appendChild(x);
   document.getElementById("SAMPLE").innerHTML = "AREA 요소가 생성되었으며,
   이제 Maya City를 클릭할 수 있습니다.";
}