FrontEnd/JavaScript & TypeScript

[JS] slick-slider ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•(๋ฐ˜์‘ํ˜•)

2022. 4. 20. 15:16
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“‹ slick-slider

slick-slider ๋Š” ๋ฐ˜์‘ํ˜• ์›น์„ ์ง€์›ํ•˜๋Š” jQuery ์Šฌ๋ผ์ด๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•๊ณผ ๋ฐ˜์‘ํ˜• ์ž‘์—…๋ฐฉ๋ฒ•์„ ์„ค๋ช… ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.


1. slick ๋‹ค์šด๋กœ๋“œ ๋ฐ css,js ํŒŒ์ผ ๋กœ๋“œ

slick ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— get it now๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ทธ ์•„๋ž˜์˜ CDN์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ <head> ํƒœ๊ทธ์•ˆ์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  slick-slider๋Š” jQuery ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— jQuery๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

CSS
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
JS
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

2. ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

slick-slider์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ์•„๋ž˜ ์ฝ”๋“œ ์ฒ˜๋Ÿผ divํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” html๋ฌธ์„œ๋ฅผ ์Šฌ๋ผ์ด๋” ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

 
< HTML >

<div class="slider-wrap">
    <div class="cont">1</div>
    <div class="cont">2</div>
    <div class="cont">3</div>
    <div class="cont">4</div>
    <div class="cont">5</div>
</div>

 
< JavaScript >

$(function(){
    $('.slider-wrap').slick({
      slide: 'div',        //์Šฌ๋ผ์ด๋“œ ๋˜์–ด์•ผ ํ•  ํƒœ๊ทธ
      infinite : true,     //๋ฌดํ•œ ๋ฐ˜๋ณต ์˜ต์…˜     
      slidesToShow : 2,        // ํ•œ ํ™”๋ฉด์— ๋ณด์—ฌ์งˆ ์ปจํ…์ธ  ๊ฐœ์ˆ˜
      slidesToScroll : 1,        //์Šคํฌ๋กค ํ•œ๋ฒˆ์— ์›€์ง์ผ ์ปจํ…์ธ  ๊ฐœ์ˆ˜
      speed : 500,     // ๋‹ค์Œ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ณ  ๋‹ค์Œ ํ™”๋ฉด ๋œจ๋Š”๋ฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(ms)
      arrows : true,         // ์˜†์œผ๋กœ ์ด๋™ํ•˜๋Š” ํ™”์‚ดํ‘œ ํ‘œ์‹œ ์—ฌ๋ถ€
      dots : true,         // ์Šคํฌ๋กค๋ฐ” ์•„๋ž˜ ์ ์œผ๋กœ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์—ฌ๋ถ€
      autoplay : true,            // ์ž๋™ ์Šคํฌ๋กค ์‚ฌ์šฉ ์—ฌ๋ถ€
      autoplaySpeed : 2000,         // ์ž๋™ ์Šคํฌ๋กค ์‹œ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (ms)
      pauseOnHover : true,        // ์Šฌ๋ผ์ด๋“œ ์ด๋™    ์‹œ ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„ํ•˜๋ฉด ์Šฌ๋ผ์ด๋” ๋ฉˆ์ถ”๊ฒŒ ์„ค์ •
      vertical : false,        // ์„ธ๋กœ ๋ฐฉํ–ฅ ์Šฌ๋ผ์ด๋“œ ์˜ต์…˜
      prevArrow : "<button type='button' class='slick-prev'>Previous</button>",
      nextArrow : "<button type='button' class='slick-next'>Next</button>",
      draggable : true,     //๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ 
      responsive: [ // ๋ฐ˜์‘ํ˜• ์›น ๊ตฌํ˜„ ์˜ต์…˜
        {  
          breakpoint: 960, //ํ™”๋ฉด ์‚ฌ์ด์ฆˆ 960px
          settings: {
            slidesToShow: 4
          } 
        },
        { 
          breakpoint: 768, //ํ™”๋ฉด ์‚ฌ์ด์ฆˆ 768px
          settings: {    
            slidesToShow: 5
          } 
        }
      ]

    });
})

slick-slider ์˜ต์…˜ ๋‚ด์˜ responsive ์•ˆ์— ํ™”๋ฉด์‚ฌ์ด์ฆˆ(breakpoint)๋ฅผ ์ง€์ •ํ•ด ๋†“์œผ๋ฉด ๊ทธ ์•ˆ์—์„œ๋Š” settings ๊ฐ’์œผ๋กœ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.


3. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜

slider์— ์ƒˆ๋กœ์šด ์ปจํ…์ธ  ์ถ”๊ฐ€ํ•˜๊ธฐ
์ด๋ฏธ slick์ด ์ ์šฉ๋œ ์ƒํƒœ์—์„œ ์Šฌ๋ผ์ด๋”๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

$('.slider-wrap').slick('slickAdd',"<div>์ƒˆ๋กœ์šด ์ปจํ…์ธ </div>");

slider์— ์žˆ๋Š” ์ปจํ…์ธ  ์‚ญ์ œํ•˜๊ธฐ
์ด๋ฏธ slick์ด ์ ์šฉ๋œ ์ƒํƒœ์—์„œ ์Šฌ๋ผ์ด๋”๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

$('.slider-wrap').slick('slickRemove',0);    //ํŠน์ • ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์— ์žˆ๋Š” slider ์‚ญ์ œ
$('.slider-wrap').slick('slickRemove',false);    //false์ด๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ์Šฌ๋ผ์ด๋” ์‚ญ์ œ
$('.slider-wrap').slick('slickRemove',true);    // true์ด๋ฉด ๋งจ ์•ž ์Šฌ๋ผ์ด๋” ์‚ญ์ œ

ํ˜„์žฌ ๋ณด์—ฌ์ง€๋Š” ์Šฌ๋ผ์ด๋“œ๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ

$('#slider-div').slick('slickCurrentSlide'); 

์›ํ•˜๋Š” ์Šฌ๋ผ์ด๋“œ๋กœ ์ด๋™ํ•˜๊ธฐ

$('#slider-div').slick('goTo', index);

728x90
๋ฐ˜์‘ํ˜•
  1. ๐Ÿ“‹ slick-slider
  2. 1. slick ๋‹ค์šด๋กœ๋“œ ๋ฐ css,js ํŒŒ์ผ ๋กœ๋“œ
  3. 2. ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
  4. 3. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜
'FrontEnd/JavaScript & TypeScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [JS] addEventListener ์ข…๋ฅ˜
  • [JS] Swiper-slide ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•(๋ฐ˜์‘ํ˜•)
  • [JS] JavaScript ๋งˆ์šฐ์Šค ์ปค์„œ ๋ชจ์–‘ ๋ฐ”๊พธ๊ธฐ
  • [JS] script ํƒœ๊ทธ ์œ„์น˜์™€ defer
devwoodie
devwoodie
devwoodie
๊ฐœ๋ฐœํ•˜์ž(DevHaja)
devwoodie
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (43)
    • FrontEnd (34)
      • React & React-Native (13)
      • JavaScript & TypeScript (8)
      • CSS (10)
      • HTML (3)
    • Dev knowledge (5)
    • Offline Conference (2)
    • Memoir (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • HOME
  • GITHUB
  • VELOG
  • TAG

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
devwoodie
[JS] slick-slider ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•(๋ฐ˜์‘ํ˜•)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.