[ JS ] 이미지 슬라이더 라이브러리 적용하기
2024. 6. 13. 18:23ㆍ· FRONT-END/└ JS
환경 : Visual Studio Code
Swiperjs : https://swiperjs.com/
[ 1. 기본 슬라이드 ]
<head>
<script type="text/javascript">
$(function(){
var swiper1 = new Swiper('.demo01', {
//direction: 'vertical',//수평(horizontal) 또는 수직(vertical)
loop: true,//슬라이드의 순환 여부를 설정(true/false)
// 페이지 네비게이터 관련 설정
pagination: {
el: '.swiper-pagination',//el은 element(요소)를 의미
clickable: true,//클릭 가능 여부 설정
type:"bullets",//네비게이터 요소 모양(bullets, fraction, progresbar)
},
// 이동 화살표
navigation: {
nextEl: '.swiper-button-next',//다음버튼 선택자
prevEl: '.swiper-button-prev',//이전버튼 선택자
hideOnClick:true,//클릭하여 숨김처리
},
});
});
</script>
</head>
<body>
<div class="container w-500">
<div class="cell">
<h2>기본 슬라이드</h2>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo01">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</div>
</body>
[ 2. 자동 슬라이드 ]
<head>
<script type="text/javascript">
$(function(){
var swiper2 = new Swiper('.demo02', {
//direction: 'vertical',//수평(horizontal) 또는 수직(vertical)
loop: true,//슬라이드의 순환 여부를 설정(true/false)
//자동재생 설정
//autoplay: true,//기본설정
autoplay: {
delay: 5000,//전환간격(ms)
pauseOnMouseEnter: true,//마우스가 올라가면 자동재생 중지
},
// 페이지 네비게이터 관련 설정
pagination: {
el: '.swiper-pagination',//el은 element(요소)를 의미
clickable: true,//클릭 가능 여부 설정
type:"bullets",//네비게이터 요소 모양(bullets, fraction, progresbar)
},
// 이동 화살표
navigation: {
nextEl: '.swiper-button-next',//다음버튼 선택자
prevEl: '.swiper-button-prev',//이전버튼 선택자
hideOnClick:true,//클릭하여 숨김처리
},
});
});
</script>
</head>
<body>
<div class="container w-500">
<div class="cell">
<h2>자동 슬라이드</h2>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo02">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</div>
</body>
[ 3. 전환 효과 설정 ]
<head>
$(function(){
var swiper3 = new Swiper('.demo03', {
//direction: 'vertical',//수평(horizontal) 또는 수직(vertical)
loop: true,//슬라이드의 순환 여부를 설정(true/false)
//이펙트 설정
effect: "flip",//slide, fade, cube, coverflow, flip, creative(custom),
// 페이지 네비게이터 관련 설정
pagination: {
el: '.swiper-pagination',//el은 element(요소)를 의미
clickable: true,//클릭 가능 여부 설정
type:"bullets",//네비게이터 요소 모양(bullets, fraction, progresbar)
},
// 이동 화살표
navigation: {
nextEl: '.swiper-button-next',//다음버튼 선택자
prevEl: '.swiper-button-prev',//이전버튼 선택자
hideOnClick:true,//클릭하여 숨김처리
},
});
});
</script>
</head>
<body>
<div class="container w-500">
<div class="cell">
<h2>전환 효과 설정</h2>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</div>
</body>
[ 4. 여러 슬라이더를 스크립트 코드 한 개로 적용 ]
$(".swiper").each(function(){
//this == 현재 회차의 .swiper 영역
var swiper = new Swiper(this, options);
});
(+) options 객체에 3번의 코드를 담기
(+) each() 메소드를 사용하여 반복
(+) this를 options 객체에 넣어주면 됨~!
[ 4에 대한 전체 코드 ]
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Javascript 예제</title>
<!-- 구글 폰트 -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap" rel="stylesheet">
<!-- 내가 구현한 스타일 -->
<link rel="stylesheet" type="text/css" href="../css/commons.css">
<!--<link rel="stylesheet" type="text/css" href="../css/test.css">-->
<!-- font awesome 아이콘 CDN -->
<link rel="stylesheet" type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<!-- swiper js cdn -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
<style>
.swiper {
width: 100%;
height: 300px;
}
</style>
<!-- jquery cdn -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
<!-- 내가 만든 스크립트 추가(jQuery를 사용했으니 jQuery CDN 아래 작성) -->
<script src="commons.js"></script>
<!-- javascript를 의도적으로 head 자리에 배치해서 가장 먼저 실행되도록 구현-->
<script type="text/javascript">
$(function(){
//목표 : 이미지 슬라이드가 몇 개든 작동하도록 구현
var options = {
//direction: 'vertical',//수평(horizontal) 또는 수직(vertical)
loop: true,//슬라이드의 순환 여부를 설정(true/false)
//이펙트 설정
effect: "slide",//slide, fade, cube, coverflow, flip, creative(custom)
//자동재생 설정
autoplay: true,//기본설정
//autoplay: {
// delay: 5000,//전환간격(ms)
// pauseOnMouseEnter: true,//마우스가 올라가면 자동재생 중지
//},
// 페이지 네비게이터 관련 설정
pagination: {
el: '.swiper-pagination',//el은 element(요소)를 의미
clickable: true,//클릭 가능 여부 설정
type:"bullets",//네비게이터 요소 모양(bullets, fraction, progresbar)
},
// 이동 화살표
navigation: {
nextEl: '.swiper-button-next',//다음버튼 선택자
prevEl: '.swiper-button-prev',//이전버튼 선택자
hideOnClick:true,//클릭하여 숨김처리
},
};
$(".swiper").each(function(){
//this == 현재 회차의 .swiper 영역
var swiper = new Swiper(this, options);
});
});
</script>
</head>
<body>
<div class="container w-500">
<div class="cell center">
<h1>이미지 슬라이더(Swiper JS)</h1>
</div>
<div class="cell">
<h2>기본 슬라이드</h2>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<div class="cell">
<!-- Slider main container -->
<div class="swiper demo03">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide"><img src="https://picsum.photos/id/25/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/27/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/28/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/29/500/300"></div>
<div class="swiper-slide"><img src="https://picsum.photos/id/33/500/300"></div>
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</div>
</body>
</html>
개인 공부 기록용입니다:)
728x90
'· FRONT-END > └ JS' 카테고리의 다른 글
[ JavaScript ] kakaomap API를 사용 및 응용해보기 (0) | 2024.06.17 |
---|---|
[ JavaScript ] 이벤트: onBlur, onChange, onClick, onFocus, onSelect, onSubmt (0) | 2024.06.15 |
[ JS ] 날짜 라이브러리 적용하기 (1) | 2024.06.12 |
[ JS ] DOM 제어 (0) | 2024.06.08 |
[ JS ] 카카오 주소 API 적용 해보기 (0) | 2024.06.07 |