swiper 시작하기
파일 다운받기(NPM)
https://swiperjs.com/get-started#installation
링크 추가하기(CDN)
장점
- 간단하고 편함
- 업데이트 됐을 때 자동 적용
- 실무에서 보통 많이 사용
단점
- 이전버전을 쓰다 업데이트 됐을 경우 깨지거나 이슈가 있을 수 있음
(오류가 있다 수정된 경우/디자인이나 레이아웃 관련해선 적다고 함)
<head>
<link rel="stylesheet"
href="https://unpkg.com/swiper@7/swiper-bundle.min.css"/>
<script src="https://unpkg.com/swiper@7/swiper-bundle.min.js"></script>
</head>
기본구조
head에 링크추가 후 body에 swiper 추가 해준다
해당 클래스명이 없으면 슬라이더 작동이 안되기 때문에 필요한 클래스는 꼭! 넣어줄 것
<body>
<!-- Slider main container -->
<!-- 해당클래스명이 없으면 슬라이더 작동 불가능 -->
<div class="swiper-container">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
...
</div>
<!-- 페이징 필요시 추가 -->
<div class="swiper-pagination"></div>
<!-- 이전, 다음 버튼 필요시 추가 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- 스크롤 필요시 추가 -->
<div class="swiper-scrollbar"></div>
</div>
</body>
기본 설정 및 옵션추가
body 맨 마지막에 스크립트를 열고 추가해줘야 함
<script>
const swiper = new Swiper('.swiper', {
// 옵션
direction: 'vertical',
loop: true,
slidesPerView: "auto",
autoplay: {
delay: 3000,
},
// 페이징 출력 시 추가
pagination: {
el: '.swiper-pagination',
},
// nav 화살표 출력 시 추가
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// 스크롤 출력 시 추가
scrollbar: {
el: '.swiper-scrollbar',
},
});
</script>
- 옵션
autoplay: {
// 자동재생
delay: 3000,
// 시간 설정
disableOnInteraction: false,
// false로 설정 시 스와이프 후 자동 재생이 비활성화 되지 않음
}
allowTouchMove: true,
// false시 버튼으로만 슬라이드 조작
ally: false,
// 접근성 매개변수 (이건 아직 잘 모르겠음)
autoHeight: true,
// true로 설정시 슬라이더 래퍼가 현재 활성 슬라이드의 높이에 맞게 조정
centeredSlides: true,
// 슬라이드 가운데 여부
direction : 'horizontal',
// 슬라이드의 진행방향(horizontal = 가로(기본), vertical = 세로)
freeMode: false,
// 슬라이드 넘길 때 위치 고정 여부
loop : true,
// 반복 여부, false 일 경우 슬라이더 수 만큼 보여준 후 첫번째로 돌아오지 않음
loopAdditionalSlides : 1,
// 슬라이드 반복시 마지막 슬라이드에서 다음 슬라이드가 보여지지 않는 현상 수정
resistance: false,
// 슬라이드 터치에 대한 저항 여부
slidesPerView : 5,
// 한 슬라이드에 보여지는 갯수
spaceBetween : 10,
// 슬라이드 사이 여백
slideToClickedSlide: true,
// 해당 슬라이드 클릭시 슬라이드 위치로 이동
slidesOffsetBefore: 10,
// 슬라이드 시작 부분 여백
slidesOffsetAfter: 10,
// 슬라이드 마지막 부분 여백
watchOverflow: true,
// 슬라이드가 1개일 때 페이징, 버튼 숨김 여부
// 페이징버튼
pagination: {
el: '.pagination',
// 페이징 버튼 담을 태그 설정
clickable: true,
// 버튼 클릭 여부
type: 'bullets',
// 버튼 모양 선택(bullets, fraction)
}
// 반응형
breakpoints: {
720: {
// width 값
spaceBetween: 20,
}
}
활용 예시
<script>
const swiper = new Swiper('.swiper', {
direction: 'vertical',
loop: true,
});
// 변수 활용 예시
var slideSetting = {
slidesPerView: "auto",
spaceBetween: 10,
}
// 변수
const swiper = new Swiper('.swiper', slideSetting);
</script>
메소드
// ex) slide.autoplay.start()
.slideTo(index, speed, runCallbacks)
// 해당 슬라이드로 이동
.slidePrev(index, speed, runCallbacks)
// 이전 슬라이드로 이동
.slideNext(index, speed, funCallbacks)
// 다음 슬라이드로 이동
.autoplay.start();
// 자동 재생 시작
.autoplay.stop();
// 자동 재생 정지
.destroy();
// 슬라이드 제거
참고
https://swiperjs.com/swiper-api