반응형
React Swiper
1. 설치
npm i swiper
2.
// Import Swiper React components
import { Swiper, SwiperSlide } from 'swiper/react';
// Import Swiper styles
import 'swiper/css';
export default () => {
return (
<Swiper
spaceBetween={50}
slidesPerView={3}
onSlideChange={() => console.log('slide change')}
onSwiper={(swiper) => console.log(swiper)}
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
...
</Swiper>
);
};
import React, { useRef, useState } from "react";
// Import Swiper React components
import { Swiper, SwiperSlide } from "swiper/react";
// Import Swiper styles
import "swiper/css";
import "./styles.css";
export default function App() {
return (
<>
<Swiper className="mySwiper">
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
<SwiperSlide>Slide 5</SwiperSlide>
<SwiperSlide>Slide 6</SwiperSlide>
<SwiperSlide>Slide 7</SwiperSlide>
<SwiperSlide>Slide 8</SwiperSlide>
<SwiperSlide>Slide 9</SwiperSlide>
</Swiper>
</>
);
}
#app {
height: 100%;
}
html,
body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
/* Center slide text vertically */
display: flex;
justify-content: center;
align-items: center;
}
.swiper-slide img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
https://codesandbox.io/p/devbox/swiper-react-default-dnfw9v?file=%2Fsrc%2FApp.jsx%3A1%2C1-27%2C1
- slidesPerView: 한 번에 보여질 슬라이드 수를 설정합니다.
- spaceBetween: 슬라이드 사이의 간격을 지정합니다.
- initialSlide: 초기에 표시할 슬라이드의 인덱스를 설정합니다.
- autoplay: 자동 재생 여부를 설정합니다.
- loop: 슬라이드를 무한 루프로 반복할지 여부를 설정합니다.
- pagination: 페이지 표시기를 활성화하고 위치를 설정합니다.
- navigation: 이전 및 다음 버튼을 표시하고 위치를 설정합니다.
- effect: 슬라이드 전환 효과를 설정합니다(예: slide, fade 등).
- grabCursor: 마우스 커서가 스와이퍼 위에 있을 때 손가락 포인터로 변경할지 여부를 설정합니다.
- keyboard: 키보드로 스와이퍼를 제어할지 여부를 설정합니다.
- mousewheel: 마우스 휠을 사용하여 스와이퍼를 제어할지 여부를 설정합니다.
- breakpoints: 반응형 디자인을 위한 미디어 쿼리와 함께 각 장치 크기에 대한 옵션을 설정합니다.
- onSlideChangeStart/onSlideChangeEnd: 슬라이드가 변경될 때 실행될 콜백 함수를 설정합니다.
- onSwiper: 스와이퍼 인스턴스를 얻기 위한 콜백 함수를 설정합니다.
Swiper 라이브러리의 modules 폴더에서 가져올 수 있는 추가 모듈들입니다.
- Virtual: 가상 슬라이드를 생성하여 매우 많은 슬라이드를 효율적으로 처리합니다.
- Keyboard: 키보드를 사용하여 스와이퍼를 제어할 수 있게 합니다.
- Mousewheel: 마우스 휠을 사용하여 스와이퍼를 제어할 수 있게 합니다.
- Navigation: 이전 및 다음 버튼을 추가하여 스와이퍼를 제어할 수 있게 합니다.
- Pagination: 페이지 표시기를 추가하여 스와이퍼의 현재 위치를 나타냅니다.
- Scrollbar: 스와이퍼에 스크롤바를 추가하여 현재 위치를 시각적으로 나타냅니다.
- Parallax: 슬라이드에 패럴랙스 효과를 적용하여 스크롤 속도에 따라 배경이 움직이는 효과를 제공합니다.
- FreeMode: 사용자가 자유롭게 스와이프할 수 있는 모드를 제공합니다.
- Grid: 슬라이드를 그리드 형식으로 표시합니다.
- Manipulation: 슬라이드를 드래그하거나 드롭하여 재정렬할 수 있게 합니다. (코어 버전에서만 사용 가능)
- Zoom: 슬라이드를 확대하거나 축소할 수 있게 합니다.
- Controller: 다른 스와이퍼 인스턴스를 제어할 수 있는 컨트롤러 역할을 합니다.
- Accessibility (A11y): 웹 접근성을 향상시키는 기능을 제공합니다.
- History: 브라우저 히스토리를 사용하여 슬라이드의 이전 및 다음 상태를 기록하고 제어합니다.
- HashNavigation: URL 해시를 사용하여 슬라이드를 제어합니다.
- Autoplay: 자동 재생 기능을 제공합니다.
- EffectFade: 페이드 효과를 추가합니다.
- EffectCube: 큐브 효과를 추가합니다.
- EffectFlip: 뒤집기 효과를 추가합니다.
- EffectCoverflow: 커버플로우 효과를 추가합니다.
- EffectCards: 카드 효과를 추가합니다.
- EffectCreative: 창의적인 효과를 추가합니다.
- Thumbs: 작은 썸네일 슬라이더를 추가합니다.
- swiper/css:
- 이 폴더에는 오직 핵심적인 Swiper 스타일만 포함됩니다. 즉, 스와이퍼의 기본적인 디자인 및 레이아웃을 정의하는 스타일 시트가 들어 있습니다.
- 이 스타일 세트에는 Swiper의 주요 기능 외에는 어떤 모듈 스타일도 포함되어 있지 않습니다.
- 주로 사용자가 Swiper의 핵심적인 디자인을 사용하고자 할 때 이 폴더의 스타일을 사용합니다.
- swiper/css/bundle:
- 이 폴더에는 swiper/css 폴더의 스타일 외에도 모든 Swiper 모듈의 스타일이 포함됩니다.
- 즉, Navigation, Pagination, Autoplay 등과 같은 Swiper의 모든 추가 기능에 대한 스타일도 여기에 포함됩니다.
- 이 폴더의 스타일은 Swiper의 모든 기능과 함께 완전한 Swiper 스타일 세트를 제공하므로, Swiper를 다양한 기능으로 확장하여 사용하고자 할 때 유용합니다.
- a11y: 웹 접근성을 향상시키기 위해 필요한 스타일 시트입니다.
- autoplay: 자동 재생 기능을 구현하기 위해 필요한 스타일 시트입니다.
- controller: 다른 스와이퍼 인스턴스를 제어하는 데 필요한 스타일 시트입니다.
- effect-cards: 카드 효과를 구현하기 위해 필요한 스타일 시트입니다.
- effect-coverflow: 커버플로우 효과를 구현하기 위해 필요한 스타일 시트입니다.
- effect-creative: 창의적인 효과를 구현하기 위해 필요한 스타일 시트입니다.
- effect-cube: 큐브 효과를 구현하기 위해 필요한 스타일 시트입니다.
- effect-fade: 페이드 효과를 구현하기 위해 필요한 스타일 시트입니다.
- effect-flip: 뒤집기 효과를 구현하기 위해 필요한 스타일 시트입니다.
- free-mode: 자유롭게 스와이프하는 데 필요한 스타일 시트입니다.
- grid: 그리드 레이아웃을 구현하기 위해 필요한 스타일 시트입니다.
- hash-navigation: 해시 네비게이션을 구현하기 위해 필요한 스타일 시트입니다.
- history: 히스토리 네비게이션을 구현하기 위해 필요한 스타일 시트입니다.
- keyboard: 키보드 컨트롤을 구현하기 위해 필요한 스타일 시트입니다.
- manipulation: 슬라이드 조작을 구현하기 위해 필요한 스타일 시트입니다.
- mousewheel: 마우스 휠 컨트롤을 구현하기 위해 필요한 스타일 시트입니다.
- navigation: 네비게이션 버튼을 구현하기 위해 필요한 스타일 시트입니다.
- pagination: 페이지 표시기를 구현하기 위해 필요한 스타일 시트입니다.
- parallax: 패럴랙스 효과를 구현하기 위해 필요한 스타일 시트입니다.
- scrollbar: 스크롤바를 구현하기 위해 필요한 스타일 시트입니다.
- thumbs: 썸네일 갤러리를 구현하기 위해 필요한 스타일 시트입니다.
- virtual: 가상 슬라이드를 구현하기 위해 필요한 스타일 시트입니다.
- zoom: 확대/축소 기능을 구현하기 위해 필요한 스타일 시트입니다.
반응형
'플러그인 외' 카테고리의 다른 글
[ 깃 ] git , github , github.io , Netlify (0) | 2024.08.26 |
---|---|
[ 플러그인 ] fullpage.js (0) | 2024.05.06 |
[ API ] 카카오 주소 , 카카오 지도 (0) | 2024.04.23 |
[ Markdown ] Markdown 작성법 (0) | 2023.12.14 |
[ 플러그인 ] 04. Masonry, isotope (0) | 2023.11.02 |