[javascript] PhotoSwipe를 이용한 이미지 비율 유지 방법
PhotoSwipe는 웹 사이트에 이미지 갤러리를 구축하는 데 사용되는 JavaScript 라이브러리입니다. PhotoSwipe를 사용하면 이미지를 확대 또는 축소하여 사용자에게 최적의 경험을 제공할 수 있습니다. 하지만 이미지의 원래 비율을 유지하는 것은 중요한 과제입니다.
이 튜토리얼에서는 PhotoSwipe를 사용하여 이미지 비율을 유지하는 방법을 알아보겠습니다.
1. HTML 구조
우선, HTML 구조를 설정해야 합니다. 원하는 대로 이미지를 포함하는 HTML 요소를 생성해줍니다. 이 예시에서는 <div>
요소를 사용합니다.
<div id="gallery">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
2. CSS 스타일링
PhotoSwipe는 이미지 갤러리의 스타일링에 사용되는 CSS 클래스를 제공합니다. 필요한 스타일을 추가하려면 CSS 파일에 다음 클래스를 포함시켜주세요.
/* PhotoSwipe 기본 스타일 */
.pswp {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.9);
z-index: 999;
}
/* 이미지 컨테이너 스타일 */
.pswp__item {
display: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden;
opacity: 0.8;
background-color: #000;
}
/* 이미지 스타일 */
.pswp__img {
max-width: none;
max-height: none;
display: block;
margin-left: auto;
margin-right: auto;
width: auto;
height: auto;
}
/* 기타 필요한 스타일링 추가 */
3. JavaScript 설정
이제 JavaScript를 사용하여 PhotoSwipe를 초기화하고 이미지 비율을 유지하는 기능을 추가합니다. PhotoSwipe 라이브러리와 관련된 스크립트 파일을 다운로드하여 적절한 위치에 추가해주세요.
<script src="path/to/photoswipe.min.js"></script>
<script src="path/to/photoswipe-ui-default.min.js"></script>
다음으로, JavaScript 파일을 추가하여 PhotoSwipe를 설정합니다. 아래는 간단한 예시입니다.
// PhotoSwipe 초기화
var gallery = new PhotoSwipe(document.getElementById('gallery'), PhotoSwipeUI_Default, /* 기타 옵션 */);
// 이미지 비율 유지
gallery.listen('beforeResize', function() {
var image = gallery.currItem.container.children[0].children[0];
if (image) {
var ratio = image.naturalWidth / image.naturalHeight;
var height = gallery.viewportSize.y;
var width = height * ratio;
image.style.maxWidth = '100%';
image.style.maxHeight = '100%';
image.style.width = width + 'px';
image.style.height = height + 'px';
}
});
// PhotoSwipe 열기
gallery.init();
이제 PhotoSwipe를 사용하여 이미지 비율을 유지하도록 설정했습니다. 웹 사이트에 이미지 갤러리를 추가하고 사용자에게 최고의 경험을 제공하세요!