[javascript] Isotope을 사용하여 각 항목에 대한 상세 정보를 담은 팝업을 구현하는 방법은 무엇인가요?
먼저, 필요한 HTML 요소를 작성합니다. 각 항목에 대한 섬네일과 상세 정보를 담을 팝업 요소가 필요합니다.
<div class="grid">
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
...
</div>
<div id="popup">
<!-- 상세 정보를 출력할 요소들 -->
</div>
다음으로, Isotope의 itemSelector
옵션과 onLayout
이벤트를 설정합니다.
var $grid = $('.grid').isotope({
itemSelector: '.item',
});
$grid.on('layoutComplete', function() {
// 팝업 호출 이벤트 등록
$('.item').on('click', function() {
var itemId = $(this).attr('data-item-id');
// 팝업 열기 및 상세 정보 로드
openPopup(itemId);
});
});
function openPopup(itemId) {
// itemId에 해당하는 상세 정보를 가져와 팝업에 출력
// 상세 정보 가져오는 로직 작성
// 팝업 열기 로직 작성
$('#popup').fadeIn();
}
위 코드에서 openPopup
함수에서는 itemId
에 해당하는 상세 정보를 가져와 팝업에 출력하는 로직을 작성해야 합니다. 이 부분은 데이터 소스에 따라 다를 수 있습니다. 이 예시에서는 각 항목의 data-item-id
속성을 이용하여 상세 정보를 가져올 수 있다고 가정하고 작성하였습니다.
마지막으로, CSS 스타일링을 통해 팝업이 화면에 나타나도록 합니다.
#popup {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* 팝업 스타일링 추가 */
}
위 코드는 간단한 예시로, 실제로는 제품에 맞게 상세 정보를 가져오거나 팝업을 필요에 맞게 스타일링해야합니다. Isotope의 다양한 옵션과 이벤트를 활용하여 개발자가 원하는 형태로 팝업을 구현할 수 있습니다.