[javascript] PhotoSwipe를 이용한 이미지 그리드 레이아웃 구현 방법
PhotoSwipe는 모바일 및 데스크톱 장치에서 사용할 수 있는 JavaScript 기반의 이미지 갤러리 및 라이트박스 라이브러리입니다. 이를 사용하여 이미지 그리드 레이아웃을 구현하는 방법을 알아보겠습니다.
1. PhotoSwipe 라이브러리 설치
먼저, PhotoSwipe 라이브러리를 다운로드하고 프로젝트에 포함시켜야 합니다. 다음 명령을 사용하여 NPM을 통해 설치할 수 있습니다.
npm install photoswipe
또는, CDN을 사용하여 다음과 같이 라이브러리를 가져올 수도 있습니다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/default-skin/default-skin.min.css">
2. HTML 구조 작성
이미지 그리드를 나타낼 HTML 구조를 작성해야 합니다. 다음과 같이 <div>
요소를 사용하여 이미지를 감싸는 컨테이너를 생성합니다.
<div id="image-grid">
<div class="grid-item">
<a href="image1.jpg">
<img src="thumbnail1.jpg" alt="Image 1">
</a>
</div>
<div class="grid-item">
<a href="image2.jpg">
<img src="thumbnail2.jpg" alt="Image 2">
</a>
</div>
<!-- 추가 이미지들 -->
</div>
3. JavaScript 코드 작성
이미지 그리드를 작동시키기 위해 JavaScript 코드를 작성해야 합니다. 다음과 같이 코드를 작성하고 페이지 로드 시에 실행되도록 해야 합니다.
window.addEventListener('DOMContentLoaded', function() {
// 이미지 그리드 요소 가져오기
var grid = document.querySelector('#image-grid');
// 이미지 그리드 아이템 가져오기
var items = grid.querySelectorAll('.grid-item');
// PhotoSwipe 라이브러리 초기화
var gallery = new PhotoSwipe(document.querySelector('.pswp'), PhotoSwipeUI_Default, items, { });
// 이미지 그리드 아이템을 클릭했을 때 이미지 갤러리 열기
grid.addEventListener('click', function(event) {
event.preventDefault();
gallery.open();
});
});
4. 스타일링
마지막으로, 이미지 그리드와 이미지들의 스타일을 지정하여 원하는 디자인을 만들 수 있습니다. CSS를 사용하여 스타일링 조정을 할 수 있습니다.
#image-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid-item img {
width: 100%;
height: auto;
}
위의 코드는 단순한 예제일 뿐입니다. 필요에 따라 더 많은 이미지 그리드 아이템을 추가하고, 스타일링을 변경하거나 PhotoSwipe의 옵션을 사용하여 원하는 동작을 구현할 수 있습니다.
PhotoSwipe에 대한 자세한 정보는 공식 문서를 참조하세요.