๐ŸŽ  Front

[Swiper] ์Šค์™€์ดํผ ํ•œ ํŽ˜์ด์ง€์— ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•˜๊ธฐ. Multiple Swiper

์—ฐ_์šฐ๋ฆฌ 2021. 12. 17. 18:45
๋ฐ˜์‘ํ˜•

์ด์ „ ๊ฒŒ์‹œ๊ธ€

 

[Swiper] ์Šค์™€์ดํผ ์˜ค๋ฅ˜ Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'E

๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€ [Swiper] ์Šค์™€์ดํผ ํ•œ ํŽ˜์ด์ง€์— ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•˜๊ธฐ. Multiple Swiper ์ด์ „ ๊ฒŒ์‹œ๊ธ€ ํ˜ธ์ถœ๋ถ€๋ถ„ fragment ์ง€์ •๋ถ€๋ถ„ //โญID๋ช… ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ด ์ตœ์ƒ๊ธ‰ 10000์› //โญID๋ช… ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ด //โญID๋ช… ๋™์ ์œผ

lotuus.tistory.com

 

 

ํ˜ธ์ถœ๋ถ€๋ถ„

<div class="container">
    <div th:replace="fragments/slider :: slider('CATEGORY', 'swiperA')"></div>
    <div th:replace="fragments/slider :: slider('CATEGORY222', 'swiperB')"></div>
</div>

 

fragment ์ง€์ •๋ถ€๋ถ„

<div class="mt-5" th:fragment="slider(title, swiperName)">
    <h3 style="font-weight:bold;" th:text="${title}"></h3>
    <div class="swiper-cover">
        <!-- Slider main container -->
        <div class="swiper " th:id="${swiperName}">  //โญID๋ช… ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ด
            <!-- Additional required wrapper -->
            <div class="swiper-wrapper">
                <!-- Slides -->
                <th:block th:each="num : ${#numbers.sequence(1,10)}">
                <!--/* ์ปฌ๋ ‰์…˜ ์—†์ด ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ์ฒ˜๋ฆฌ : ${#numbers.sequence(from,to,step)} */-->
                    <div class="swiper-slide">
                        <div class="col">
                            <div class="card shadow-sm">
                                <img src="https://plchldr.co/i/245x180" alt="plchldr.co" class="swiper-lazy">
                                <div class="card-body">
                                    <p class="card-text" style="text-align:left;">
                                        <span th:text="'์ฑ…์ œ๋ชฉ'+${num}"></span> <br>
                                        <span>์ตœ์ƒ๊ธ‰</span> <br>
                                        <span>10000์›</span>
                                    </p>
                                </div>
                            </div>
                        </div>
                    </div>
                </th:block>
            </div>
        </div>

        <!-- If we need navigation buttons -->
        <div class="swiper-button-prev-custom " th:id="prev_+${swiperName}"> //โญID๋ช… ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ด
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-arrow-left-circle-fill" viewBox="0 0 16 16">
                <path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.5 7.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5z"/>
            </svg>
        </div>
        <div class="swiper-button-next-custom " th:id="next_+${swiperName}"> //โญID๋ช… ๋™์ ์œผ๋กœ ๊ฐ€์ ธ์˜ด
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-arrow-right-circle-fill" viewBox="0 0 16 16">
                <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM4.5 7.5a.5.5 0 0 0 0 1h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H4.5z"/>
            </svg>
        </div>

    </div>
</div>

swiper-button-next-custom์€ ๋ฒ„ํŠผ์„ ์™ธ๋ถ€๋กœ ๋นผ๊ธฐ์œ„ํ•ด css ์ ์šฉํ•œ ๊ฒƒ์ด๋‹ค.

 

 var Swipers = [];
 $('.swiper').each(function(i) {
   var thisID = $(this).attr('id'); //์•„์ด๋”” ๊ฐ€์ ธ์˜ค๊ธฐ

   Swipers[i] = new Swiper('#'+thisID, {	//โญ์•„์ด๋”” ์„ค์ •
        loop: true,
        navigation: {
            nextEl: '#next_'+thisID,   //โญ๋ฒ„ํŠผ ์„ค์ •
            prevEl: '#prev_'+thisID,   //โญ๋ฒ„ํŠผ ์„ค์ •
        },
        lazy : {
            loadPrevNext : true // ์ด์ „, ๋‹ค์Œ ์ด๋ฏธ์ง€๋Š” ๋ฏธ๋ฆฌ ๋กœ๋”ฉ
        },
       breakpoints: {
           320: {  slidesPerView: 2,  spaceBetween: 10,  },
           500: {  slidesPerView: 3,  spaceBetween: 10,  },
           768: {  slidesPerView: 4,  spaceBetween: 10,  },
           1024: { slidesPerView: 5,  spaceBetween: 10,  },
       }
   });
 });

์™„์„ฑ!

๋ฐ˜์‘ํ˜•
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๊ธฐ
  • ๊ตฌ๊ธ€ ํ”Œ๋Ÿฌ์Šค ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ