๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[PROJECT] ๋‚ด์ผ์˜ ์ง‘

#4. ์บ๋กœ์…€(Carousel) ๊ตฌํ˜„ํ•˜๊ธฐ

#4-0 ๋“ค์–ด๊ฐ€๋Š” ๋ง


 ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€ ์ƒ๋‹จ์˜์—ญ์— ๋“ค์–ด๊ฐˆ ์บ๋กœ์…€ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋ ค๋‹ค๊ฐ€ react-slick ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜€๋Š”๋ฐ ๋‹คํ–‰ํžˆ ์ž˜ ์ ์šฉ๋˜์–ด ๊ธฐ๋ปค๋‹น. 

 


#4-1 Carousel ๋งŒ๋“ค๊ธฐ (https://react-slick.neostack.com/docs/get-started)

1) ๋จผ์ € react-slick๊ณผ slick-carousel ์„ค์น˜ํ•˜๊ธฐ

npm install react-slick
npm install slick-carousel

 

2) Carousel.js ํŒŒ์ผ์— ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž„ํดํŠธ ํ•˜๊ธฐ

import Slider from 'react-slick';

import "slick-carousel/slick/slick.css"; 

import "slick-carousel/slick/slick-theme.css";

 

3) settings๋ฅผ ํ†ตํ•ด carousel ๊ธฐ๋ณธ ์„ค์ •๋“ค์„ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <Slider> ์ปดํฌ๋„ŒํŠธ์— dotsClass๋ฅผ ์ƒˆ๋กœ์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด carousel์˜ ์ ๋“ค๋„ ์ข€ ๋” ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋””์ž์ธ์— ๋งž์ถฐ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ๋‹ค. (css ์ฝ”๋“œ๋Š” ์ƒ๋žตํ•จ)

import React  from 'react';
import { Link } from 'react-router-dom';

import Slider from 'react-slick';
import "slick-carousel/slick/slick.css"; 
import "slick-carousel/slick/slick-theme.css";

import styles from './Carousel.module.scss';

function Carousel(){

  const settings = {
    dots: true,
    infinite: true,
    speed: 500,
    autoplay: true,
    autoplaySpeed: 3000,  
    slidesToShow: 1,
    slidesToScroll: 1,
  };

  return(
    <>
    <Slider {...settings} dotsClass={styles.slick_dots}>
      <div className={styles.carousel}>
        <Link to="/">
          <img src="images/img-carousel01.jpg" alt="์บ๋กœ์ƒ 1" className={styles.sm_only}/>
          <img src="images/img-carousel01-wide.jpg" alt="์บ๋กœ์ƒ 1" className={styles.sm_hidden}/>
        </Link>
      </div>
      <div className={styles.carousel}>
        <Link to="/">
          <img src="images/img-carousel02.jpg" alt="์บ๋กœ์ƒ 2" className={styles.sm_only}/>
          <img src="images/img-carousel02-wide.jpg" alt="์บ๋กœ์ƒ 2" className={styles.sm_hidden}/>
        </Link>
      </div>
      <div className={styles.carousel}>
        <Link to="/">
          <img src="images/img-carousel03.jpg" alt="์บ๋กœ์ƒ 3" className={styles.sm_only}/>
          <img src="images/img-carousel03-wide.jpg" alt="์บ๋กœ์ƒ 3" className={styles.sm_hidden}/>
        </Link>
      </div>
      <div className={styles.carousel}>
        <Link to="/">
          <img src="images/img-carousel04.jpg" alt="์บ๋กœ์ƒ 4" className={styles.sm_only}/>
          <img src="images/img-carousel04-wide.jpg" alt="์บ๋กœ์ƒ 4" className={styles.sm_hidden}/>
        </Link>
      </div>
    </Slider>
    </>
  )
}

export default Carousel;

#4-1 Carousel ์™„์„ฑ ์ด๋ฏธ์ง€ 


์งœ์ž” ์™„์„ฑ~~~