[javascript] Isotope을 이용하여 다중 필터링 기능을 구현하는 방법은 무엇인가요?
  1. 먼저, Isotope 라이브러리를 HTML 문서에 추가합니다. 이를 위해 <script> 태그를 사용하고, Isotope의 CDN 링크를 포함시킵니다:
<script src="https://cdn.jsdelivr.net/npm/isotope-layout/dist/isotope.pkgd.min.js"></script>
  1. HTML 마크업에서 필터링할 항목들을 각각 클래스로 그룹화합니다. 예를 들어, item 클래스를 가진 <div> 요소들이 있다고 가정해보겠습니다:
<div class="item">항목 1</div>
<div class="item">항목 2</div>
<div class="item">항목 3</div>
...
  1. 필터링 버튼을 만듭니다. 이 버튼들은 사용자가 선택한 필터를 기반으로 항목들을 필터링하는데 사용됩니다. 각 버튼에는 다른 필터를 나타내는 클래스를 할당합니다. 예를 들어, filter-btn 클래스를 가진 <button> 요소들을 만듭니다:
<button class="filter-btn" data-filter="*">모두 보기</button>
<button class="filter-btn" data-filter=".category1">카테고리 1</button>
<button class="filter-btn" data-filter=".category2">카테고리 2</button>
...
  1. JavaScript 코드를 작성하여 Isotope을 초기화하고 필터링 기능을 추가합니다. 이 코드는 페이지 로드시 실행되어야 합니다.
// Isotope 초기화
var grid = document.querySelector('.grid');
var iso = new Isotope(grid, {
  itemSelector: '.item',
  layoutMode: 'fitRows'
});

// 필터링 버튼 이벤트 처리
var filterButtons = document.querySelectorAll('.filter-btn');
filterButtons.forEach(function(button) {
  button.addEventListener('click', function() {
    var filterValue = button.getAttribute('data-filter');
    iso.arrange({ filter: filterValue });
  });
});

이제 각 버튼을 클릭하면 선택한 필터에 따라 항목들이 필터링될 것입니다. Isotope 라이브러리를 이용하여 간편하고 유연한 다중 필터링 기능을 구현할 수 있습니다.

더 자세한 정보를 원하시면, Isotope 공식 문서를 참조하시기 바랍니다.