[javascript] 드래그 앤 드롭 이벤트를 사용하여 자바스크립트로 웹 사이트 사전 검색 기능 구현 방법

웹 사이트에 사전 검색 기능을 구현하는데 드래그 앤 드롭 이벤트를 활용해보고자 합니다. 사용자가 텍스트를 드래그하여 해당 단어의 정의를 표시해주는 기능을 만들어보겠습니다.

HTML 마크업

먼저, HTML 마크업을 작성합니다. 아래와 같이 입력해주세요.

<!DOCTYPE html>
<html>
  <head>
    <title>사전 검색 기능</title>
  </head>
  <body>
    <h1>웹 사이트 사전 검색 기능</h1>
    <p>텍스트를 드래그하여 단어의 정의를 확인하세요.</p>
    <div class="dictionary">
      <p>
        JavaScript는 웹 프론트엔드 개발에서 가장 일반적으로 사용되는 프로그래밍 언어입니다. JavaScript로는 동적인 웹 페이지를 제작하고 웹 애플리케이션을 개발할 수 있습니다.
      </p>
      <p>
        HTML은 웹 페이지의 구조를 정의하는 마크업 언어입니다. 웹 브라우저는 HTML 문서를 해석하여 콘텐츠를 표시합니다.
      </p>
      <p>
        CSS는 웹 페이지의 스타일링을 담당하는 스타일 시트 언어입니다. CSS를 사용하여 웹 페이지의 레이아웃, 색상, 폰트 등을 조정할 수 있습니다.
      </p>
    </div>
    <div class="definition">
      <p id="word-definition"></p>
    </div>
    <script src="script.js"></script>
  </body>
</html>

CSS 스타일링

다음으로, CSS 스타일을 추가합니다. 아래와 같이 입력해주세요.

.dictionary {
  border: 1px solid #ccc;
  padding: 10px;
  margin-bottom: 20px;
}

.definition {
  background-color: #f5f5f5;
  padding: 10px;
}

#word-definition {
  font-weight: bold;
}

JavaScript 구현

드래그 앤 드롭 이벤트를 사용하여 사전 검색 기능을 구현해보겠습니다. script.js 파일을 생성하고 아래 코드를 입력해주세요.

// 단어를 드래그하면 정의를 표시하는 함수
function displayDefinition(event) {
  event.preventDefault();
  
  const selectedText = window.getSelection().toString();
  const dictionaryEntries = document.getElementsByClassName('dictionary')[0].getElementsByTagName('p');
  
  for (let i = 0; i < dictionaryEntries.length; i++) {
    const dictionaryEntryText = dictionaryEntries[i].innerText.toLowerCase();
    
    if (dictionaryEntryText.includes(selectedText.toLowerCase())) {
      const definitionParagraph = document.getElementById('word-definition');
      definitionParagraph.innerText = dictionaryEntries[i].innerText;
      break;
    }
  }
}

// 드래그 앤 드롭 이벤트 리스너 등록
document.addEventListener('mouseup', displayDefinition);

위의 코드는 displayDefinition 함수에서 드래그된 텍스트를 가져와서 사전에서 정의를 표시합니다. mouseup 이벤트 리스너를 등록하여 드래그 앤 드롭 이벤트가 발생했을 때 displayDefinition 함수를 호출합니다.

결과 확인

웹 브라우저에서 HTML 파일을 열고 텍스트를 드래그하여 정의를 확인해보세요. 드래그한 텍스트에 해당하는 단어의 정의가 표시될 것입니다.

이렇게 자바스크립트를 사용하여 드래그 앤 드롭 이벤트를 활용한 사전 검색 기능을 구현할 수 있습니다.

참고 자료