[javascript] 자바스크립트와 GreenSock을 이용한 드래그 앤 드롭 쇼핑 카트 구현하기

본 포스팅에서는 자바스크립트와 GreenSock Animation Platform(GSAP)을 이용하여 드래그 앤 드롭 쇼핑 카트를 구현하는 방법을 알아보겠습니다. GSAP은 웹 애니메이션을 구현하기 위한 강력한 라이브러리로, 쉽게 요소를 애니메이션화할 수 있습니다.

목차

환경 설정

먼저, GSAP을 사용하기 위해 다음과 같이 <script> 태그를 사용하여 GSAP 라이브러리를 가져옵니다.

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>

HTML 마크업

다음은 간단한 쇼핑 카트를 위한 HTML 마크업입니다. 드래그 앤 드롭 기능을 구현할 아이템을 <div> 요소로 만들고, 쇼핑 카트를 <div>로 만듭니다.

<div class="container">
  <div class="items">
    <div class="item" draggable="true">Item 1</div>
    <div class="item" draggable="true">Item 2</div>
    <div class="item" draggable="true">Item 3</div>
  </div>
  <div class="cart">
    <h2>Shopping Cart</h2>
  </div>
</div>

CSS 스타일링

CSS를 사용하여 아이템과 쇼핑 카트를 스타일링합니다.

.container {
  display: flex;
}

.items {
  width: 300px;
  padding: 20px;
}

.item {
  background-color: #f0f0f0;
  padding: 10px;
  margin-bottom: 10px;
}

.cart {
  width: 300px;
  padding: 20px;
  background-color: #ffffff;
  border: 1px solid #dddddd;
}

자바스크립트 코드

이제 자바스크립트를 사용하여 드래그 앤 드롭 기능을 구현하고 쇼핑 카트에 아이템을 추가하는 기능을 구현해보겠습니다.

const items = document.querySelectorAll('.item');
const cart = document.querySelector('.cart');

items.forEach(item => {
  item.addEventListener('dragstart', () => {
    item.classList.add('dragging');
  });
  
  item.addEventListener('dragend', () => {
    item.classList.remove('dragging');
  });
});

cart.addEventListener('dragover', e => {
  e.preventDefault();
});

cart.addEventListener('drop', e => {
  e.preventDefault();
  
  const draggedItem = document.querySelector('.dragging');
  cart.appendChild(draggedItem);
});

위 자바스크립트 코드에서는 dragstart 이벤트와 dragend 이벤트를 사용하여 드래그 앤 드롭 동작을 구현합니다. dragover 이벤트를 사용하여 드롭 영역에 아이템을 올릴 수 있게 하고, drop 이벤트를 사용하여 아이템을 실제로 쇼핑 카트에 추가합니다.

결론

이렇게 자바스크립트와 GSAP을 이용하여 드래그 앤 드롭 쇼핑 카트를 구현할 수 있습니다. GSAP의 강력한 애니메이션 기능을 활용하여 보다 다양한 효과를 추가할 수도 있습니다. 이를 응용하여 사용자 친화적인 쇼핑 카트를 만들어보세요. 자세한 내용은 GreenSock의 공식 문서를 참고하시기 바랍니다.