[javascript] 커스텀 콘텍스트 메뉴 스타일링하기
컨텍스트 메뉴는 웹 애플리케이션에서 우클릭을 통해 나타나는 게시물에 대해 추가 작업을 수행할 수 있는 기능입니다. 보통 이 기능을 커스텀하기 위해 라이브러리를 사용합니다. 하지만 때로는 기본적인 웹 기술만으로 커스텀 콘텍스트 메뉴를 만드는 것이 유용할 수 있습니다. 이번 포스팅에서는 HTML, CSS, 그리고 자바스크립트를 사용하여 기본 콘텍스트 메뉴를 커스텀하는 방법에 대해 알아보겠습니다.
HTML 구조
우선, 기본적인 HTML 구조부터 만들어 보겠습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>커스텀 콘텍스트 메뉴</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div oncontextmenu="return false" class="context-menu">우클릭해주세요</div>
</body>
<script src="script.js"></script>
</html>
CSS 스타일링
다음으로는 CSS를 사용하여 커스텀 콘텍스트 메뉴의 디자인을 작성해보겠습니다.
.context-menu {
width: 150px;
padding: 10px;
background-color: #fff;
border: 1px solid #ccc;
position: absolute;
display: none;
z-index: 1000;
}
.context-menu.active {
display: block;
}
자바스크립트로 동작 구현
마지막으로, 자바스크립트를 사용하여 우클릭 이벤트를 처리하고 커스텀 콘텍스트 메뉴를 활성화하도록 구현해보겠습니다.
document.addEventListener('contextmenu', function(event) {
event.preventDefault();
const contextElement = document.querySelector('.context-menu');
contextElement.style.top = event.clientY + 'px';
contextElement.style.left = event.clientX + 'px';
contextElement.classList.add('active');
});
document.addEventListener('click', function(event) {
const contextElement = document.querySelector('.context-menu');
if (!contextElement.contains(event.target)) {
contextElement.classList.remove('active');
}
});
이제, 웹 페이지에서 우클릭을 해보면 우리가 만든 커스텀 콘텍스트 메뉴가 나타나는 것을 확인할 수 있습니다. 여기서 배운 내용을 바탕으로 디자인 및 기능을 추가하여 원하는 형태의 커스텀 콘텍스트 메뉴를 만들어 보세요.
참고문헌: