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

HTML ondragstart 이벤트 속성 완벽 가이드 – 드래그 시작 이벤트 이해하기

HTML ondragstart 이벤트 속성은 사용자가 HTML 문서에서 특정 요소 또는 요소 안의 텍스트를 드래그하기 시작하는 순간에 실행됩니다. 이 속성은 주로 드래그 앤 드롭(Drag & Drop) 기능을 구현할 때 활용되며, 드래그가 시작되는 시점에 원하는 자바스크립트 코드를 실행할 수 있게 해줍니다.

ondragstart 속성 사용 시 주의사항

드래그 기능이 정상적으로 작동하려면 대상 요소에 반드시 draggable="true" 속성을 지정해야 합니다. 또한 ondragstart는 ondragend(드래그 종료), ondragover(드래그 중 요소 위를 지날 때), ondrop(요소를 놓을 때) 등의 관련 이벤트와 함께 사용하면 더욱 완성도 높은 드래그 앤 드롭 인터페이스를 만들 수 있습니다.

문법(Syntax)

ondragstart 이벤트 속성의 기본 문법은 다음과 같습니다.

<tagname ondragstart=”script”></tagname>

예제(Example)

다음 예제는 두 개의 박스 사이에서 빨간 원을 드래그 앤 드롭하면서 ondragstart 이벤트 속성이 어떻게 동작하는지 보여줍니다. 드래그가 시작되면 화면 하단에 안내 메시지가 표시됩니다.

<!DOCTYPE html>
<html>
<head>
<style>
   body {
      color: #000;
      height: 100vh;
      background-color: #FBAB7E;
      background-image: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%);
      text-align: center;
   }
   .drop-target {
      display: inline-block;
      width: 150px;
      height: 150px;
      border: 2px solid #FFF;
      margin: 1rem;
      vertical-align: middle;
      padding: 20px;
   }
   .circle {
      background: #db133a;
      height: 40px;
      width: 40px;
      border-radius: 50%;
   }
   .show {
      color: #fff;
      font-size: 1.2rem;
   }
</style>
</head>
<body>
<h1>HTML ondragstart Event Attribute Demo</h1>
<div class="drop-target" ondrop="drop(event)" ondragover="allowDrop(event)">
<p ondragstart="dragStart(event)" ondragend="dragFinished(event)" draggable="true" class="circle"></p>
</div>
<div class="drop-target" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<p>Now try to drag and drop the red circle</p>
<div class="show"></div>
<script>
   function dragStart(event) {
      event.dataTransfer.setData("Text", event.target.id);
      document.querySelector(".show").innerHTML = "Started to drag the red circle.";
   }
   function dragFinished(event) {
      document.querySelector(".show").innerHTML = "Finished dragging the red circle.";
   }
   function allowDrop(event) {
      event.preventDefault();
   }
   function drop(event) {
      event.preventDefault();
      event.target.appendChild(document.querySelector('.circle'));
   }
</script>
</body>
</html>

실행 결과(Output)

위 코드를 브라우저에서 실행하면 다음과 같은 화면이 나타납니다.

HTML ondragstart 이벤트 속성 완벽 가이드 – 드래그 시작 이벤트 이해하기

이제 두 박스 사이에서 빨간 원을 직접 드래그 앤 드롭해 보세요. 드래그가 시작되는 순간 ondragstart 이벤트가 발생하여 "빨간 원 드래그 시작" 메시지가 화면에 표시되고, 드래그가 끝나면 ondragend 이벤트에 의해 완료 메시지로 바뀌는 것을 확인할 수 있습니다.

HTML ondragstart 이벤트 속성 완벽 가이드 – 드래그 시작 이벤트 이해하기