Swiper ์ฌ์ฉ ํ๊ธฐ (feat. ํ ์ผ์๋)
React์์ ๋ง์ด ์ฌ์ฉํ๋ Swiper๋ ์ด๋ฏธ์ง ์บ๋ฌ์ ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
ํ์ฌ ํ๋ก์ ํธ์์ Tailwind CSS์ ํจ๊ป Swiper๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋๋ ์ฅ๋จ์ ์ ์ ๋ฆฌํด๋ณด์๋ค.
์ฅ์
1. ์ฌ์ฉ์ด ๊ฐํธํ๋ค
Swiper๋ ๊ธฐ๋ณธ์ ์ธ ์ค์ ๋ง์ผ๋ก๋ ์ฝ๊ฒ ์บ๋ฌ์ ์ ๊ตฌํํ ์ ์๋ค.
์บ๋ฌ์
์ด ํ์ํ ๋ถ๋ถ์ <Swiper>
๋ฅผ ์์ฑํ๊ณ , ๊ทธ ๋ด๋ถ์ <SwiperSlide>
๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
<Swiper>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
</Swiper>
2. ๋ฌธ์ํ๊ฐ ์๋์ด์๋ค
Swiper๋ ๋ฌธ์๊ฐ ์ ์ ๋ฆฌ๋์ด ์๊ณ , ๋ค์ํ ์์ ๋ ์ ๊ณต๋์ด ์์ด ์ฒ์ ์ฌ์ฉํ๋ ์ฌ๋๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค.
Swiper - The Most Modern Mobile Touch Slider
Swiper - The Most Modern Mobile Touch Slider
Swiper is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior.
swiperjs.com
๋จ์
1. Tailwind์ ํธํ์ฑ์ด ๋์ง ์๋ค
Swiper๋ Tailwind CSS์ ํจ๊ป ์ฌ์ฉํ๊ธฐ์ ๋ถํธํ ๋ถ๋ถ์ด ์๋ค.
ํ
์ผ์๋์ ๊ฒฝ์ฐ ํด๋์ค๋ช
์ ํตํด ๊ฐ๋จํ๊ฒ ์คํ์ผ์ ์ ์ํ ์ ์๋ ์ ์ด ์ฅ์ ์ด ์๋ค. ํ์ง๋ง Swiper๋ CSS ์์
์.css
ํ์ผ์ ์์ฑํด ์ง์ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ธ๋ผ์ธ ์คํ์ผ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์๋ฅผ ๋ค์ด:
.swiper{}
<Swiper
...
style={{ width: '350px' }}
>
์ด๋ฐ ์ ๋๋ฌธ์ ํ ์ผ์๋์ ๊ฐํธํจ๊ณผ๋ ๋ค์ ๊ฑฐ๋ฆฌ๊ฐ ์๋ค.
2. ๋ค๋ฅธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐ์ฐ๋๋ฐ ์๊ฐ์ด ํ์ํ๋ค
Swiper๋ ๋ค์ํ ์ค์ ์ ์ ๊ณตํ์ง๋ง, ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค์ ํญ๋ชฉ๋ค์ ์ตํ๋ ๋ฐ ์๊ฐ์ด ํ์ํ๋ค.
<Swiper
spaceBetween={10} // <- ์ด๋ฐ ๋ด๋ถ ์ค์ ๋ค์ด ๋ง๋ค.
centeredSlides
pagination={{clickable: true,}}
modules={[Autoplay]}
autoplay={{ delay: 4000, disableOnInteraction: false }}
loop
slidesPerView={1}
grabCursor
onSlideChange={handleSlideChange}
style={{ width: '350px' }}
>...</Swiper>
ํ์ง๋ง ์ด ๋ถ๋ถ์ ์ด์ฉ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ์คํ๋ ค ์ฅ์ ์ด ๋ ์๋..?
3. ํ ์คํธ ์ค์ ์ ์ถ๊ฐ ์์ ์ด ํ์ํ๋ค
ํ์ฌ ํ๋ก์ ํธ์์ Jest๋ก ์ปดํฌ๋ํธ ํ ์คํธ๋ฅผ ์งํ ์ค์ธ๋ฐ, Swiper๊ฐ ํฌํจ๋ ํ ์คํธ๋ฅผ ์งํํ๋ ค๋ฉด ์์ธ ์ค์ ์ ์ถ๊ฐ๋ก ํด์ผํ๋ค. (๊ทธ๋ฅ ๋ด๊ฐ Jest์ ์ต์ํ์ง ์์์ ๊ทธ๋ฐ ๊ฒ์ผ ์๋ ์๋ค.)
๋ฌผ๋ก Swiper๋ง์ ๋ฌธ์ ๋ผ๊ธฐ๋ณด๋ค๋ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ณตํต์ ์ธ ์ด๋ ค์์ผ ์ ์๋ค.
ํ์ง๋ง ์ด ์์ ์ด ๋๋ฅผ ๋งค์ฐ ํ๋ค๊ฒ ํ๋ค.๐ฅ
๊ฒฐ๋ก
์ ์ฒด์ ์ผ๋ก Tailwind CSS๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Swiper ๋์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ฒํ๊ณ ์ถ๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๋ ๋ชจ๋ฅด๊ฒ ๋ค. (์ ์๊ฒ ์ถ์ฒํด์ฃผ์ธ์..ใ ใ )
๊ฐ์ฅ ํฐ ์ด์ ๋ css๋ฅผ ๋ณ๋๋ก ์์ฑํด์ผ ํ๋ ์ ์ด ๋๋ฌด ๋ถํธํ๋ค. ํ์ฌ ํ๋ก์ ํธ์์๋ ์บ๋ฌ์ ์ ์ง์ ๊ตฌํํด๋ณผ๊น ๊ณ ๋ฏผ ์ค์ด๋ค.
์ถ๊ฐ๋ก Tailwind CSS๋ก ์บ๋ฌ์ ์ ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด, ์๋ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ธธ ์ถ์ฒํ๋ค.
Scroll Snap Type - Tailwind CSS
Scroll Snap Type - Tailwind CSS
Utilities for controlling how strictly snap points are enforced in a snap container.
tailwindcss.com