๋ฐ์ํ
์ด์ ๊ฒ์๊ธ
ํธ์ถ๋ถ๋ถ
<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, },
}
});
});
์์ฑ!
๋ฐ์ํ