인터랙티브 웹사이트는 사용자에게 더욱 매력적인 경험을 제공할 수 있습니다. 애니메이션, 툴팁 또는 기타 추가 효과를 추가하는 등 웹사이트를 더욱 인터랙티브하게 만드는 방법에는 여러 가지가 있습니다.

일부 웹사이트에서는 사용자가 페이지의 요소 위로 마우스를 가져가면 정보를 표시하기도 합니다. 여기에는 사용자가 이미지 위로 마우스를 가져가 툴팁을 사용하여 데이터 요소를 볼 수 있는 지도 또는 기타 시각적 데이터가 포함됩니다.

특정 CSS 기법 및 JavaScript DOM 개념을 사용하여 HTML, CSS 및 JavaScript를 사용하여 이 효과를 얻을 수 있습니다.

HTML 파일의 이미지 위에 도구 설명을 추가하는 방법

이미지는 웹 페이지에서 시각적으로 매력적인 방식으로 정보를 전달하는 데 유용한 방법이 될 수 있습니다. 또한 간단한 이미지 갤러리와 같은 다른 매력적인 효과를 추가하는 데에도 유용합니다.

CSS 및 JavaScript를 사용하여 HTML의 이미지 위에 툴팁을 추가할 수 있습니다.

이 프로젝트에 사용된 코드는 이 GitHub 리포지토리에서 MIT 라이선스에 따라 사용할 수 있습니다.

⭐ index.html이라는 새 파일에 HTML 파일의 기본 구조를 추가합니다:

 <!DOCTYPE html>
<html>
  <head>
    <title>Image Tooltip Example</title>
  </head>
  <body>

  </body>
</html>

⭐ 본문 태그 안에 컨테이너 div를 추가합니다. 이 div에는 이미지와 툴팁 요소가 모두 포함됩니다:

 <div class="container">

</div>

⭐ 컨테이너 안에 이미지를 추가합니다. 파일 이름이 일치하는 이미지가 HTML 파일과 같은 폴더에 있는지 확인합니다:

 <img src="image.jpg" class="image" height="420" width="840" alt="Your Image"> 

⭐ 이미지 아래에 툴팁을 나타내는 div를 추가합니다:

 <div class="tooltip"></div> 

⭐ 헤드 태그에 스타일 태그를 추가합니다. 스타일 태그 안에 이미지 컨테이너와 도구 설명에 대한 스타일을 추가합니다.

 <style>
  .container {
    position: relative;
    display: inline-block;
  }
        
  .tooltip {
   position: absolute;
   left: 0;
   display: none;
   padding: 5px;
   background-color: #000;
   color: #fff;
   font-size: 12px;
 }
</style>

⭐ 본문 태그 하단에 새 스크립트 태그를 만듭니다:

 <body>
  <!-- Your webpage content here -->

  <script>

  </script>
</body>

이 글도 확인해 보세요:  웹 개발을 위한 가장 인기 있는 8가지 백엔드 프레임워크

⭐ 스크립트 태그 내에서 DOM 선택기 함수 쿼리셀렉터를 사용하여 이미지의 HTML 요소와 도구 설명을 가져옵니다:

 const image = document.querySelector('.image');
const tooltip = document.querySelector('.tooltip');

⭐ 마우스 오버 이벤트에 대한 이벤트 리스너를 추가합니다. 이 기능은 이미지 위로 마우스를 가져가면 실행됩니다. 이 경우 툴팁이 화면에 표시됩니다:

 image.addEventListener('mouseover', () => {
  tooltip.style.display = 'block';
});

⭐ 마우스아웃 이벤트에 대한 이벤트 리스너를 추가합니다. 이 기능은 마우스가 이미지에서 벗어날 때 실행됩니다. 이 경우 툴팁이 화면에서 사라집니다:

 image.addEventListener('mouseout', () => {
  tooltip.style.display = 'none';
});

⭐ 브라우저에서 index.html 파일을 열고 이미지 위로 마우스를 가져가 툴팁을 확인합니다.

이미지의 X 및 Y 픽셀 좌표를 계산하고 표시하는 방법

이제 툴팁이 페이지에 표시되었으므로 마우스의 X 및 Y 좌표를 표시하도록 해당 위치와 텍스트를 변경합니다.

이미지 위로 마우스를 가져가기 전에 툴팁이 표시되지 않도록 툴팁의 CSS 스타일을 변경합니다. 이렇게 하면 커서 위치로 이동하기 전에 이미지 하단에 도구 설명이 표시되지 않습니다:

 .tooltip {
  position: absolute;
  top: -30px;
  left: 0;
  display: none;
  padding: 5px;
  background-color: #000;
  color: #fff;
  font-size: 12px;
}

⭐ 스크립트 태그 안에 마우스 이동 이벤트를 수신할 다른 이벤트 리스너를 추가합니다. 이 함수는 마우스가 새 픽셀 위로 마우스를 가져갈 때마다 연속적으로 실행됩니다. 마우스 이동 이벤트에 대한 정보를 함수에 입력하는 이벤트 매개 변수를 추가합니다. 이 정보에는 마우스가 해당 지점에 있는 이미지 좌표가 포함됩니다:

 image.addEventListener('mousemove', (e) => {

});

⭐ 이벤트를 사용하여 왼쪽 CSS 속성을 사용하여 툴팁의 가로 위치를 변경합니다. 마우스가 움직일 때마다 클라이언트X 변수에 저장된 커서의 X 좌표와 일치하도록 값이 업데이트됩니다:

 tooltip.style.left = e.clientX + 'px'; 

⭐ 상단 CSS 속성을 사용하여 툴팁의 세로 위치를 변경합니다. ClientY는 마우스의 y 좌표를 나타냅니다. 오프셋 높이 속성은 툴팁 내부에 추가 패딩이나 테두리를 포함합니다. 커서가 있는 위치에 툴팁을 직접 표시하고 싶지 않다면 해당 위치에서 10픽셀을 추가로 제거할 수 있습니다:

 tooltip.style.top = e.clientY - tooltip.offsetHeight - 10 + 'px'; 

이 글도 확인해 보세요:  내부에서 REST API 호출을 수행하는 방법 VS 코드

⭐ 좌표를 표시하도록 툴팁의 텍스트 내용을 변경합니다:

 tooltip.textContent = `X: ${e.offsetX}, Y: ${e.offsetY}`; 

⭐ 브라우저에서 index.html 파일을 열고 이미지 위로 마우스를 가져가 업데이트된 툴팁을 확인합니다:

대화형 웹페이지에 효과 추가하기

이제 웹페이지의 이미지에 대화형 툴팁을 추가하는 방법을 이해했습니다. 다른 흥미로운 HTML 효과를 실험해 보면서 HTML 및 CSS 기술을 계속 발전시킬 수 있습니다.

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.