Javascript
[Javascript] swiper slider
- 2025.08.08 11:38:14
swiper 슬라이더 사용 방법
사이트 URL : https://swiperjs.com/demos#space-between [!]HTML[/!] <div class="m1">
<div class="slide_wrap"> <div class="info_slide swiper"> <div class="roll swiper-wrapper"> <?php for ($i=0; $i < 5; $i++) { ?> <div class="item swiper-slide"> <img src="http://wimg.kr/333x227" alt=""> </div> <?php } ?> </div> </div> <div class="ctr_wrap"> <div class="dots"></div> <div class="num"> <span class="current">01</span> · <span class="total">03</span> </div> <button type="button" class="prev" aria-label="Previous slide"><img src="<?=DIR?>/images/main/btn-slide-arrow.png" alt=""></button> <button type="button" class="next" aria-label="Next slide"><img src="<?=DIR?>/images/main/btn-slide-arrow.png" alt=""></button> <button type="button" class="swiper-play" aria-label="Play" style="display: none;"><i class="axi axi-play-arrow"></i></button> <button type="button" class="swiper-stop" aria-label="Pause"><i class="axi axi-pause2"></i></button> </div> </div> </div> [!]Javascript[/!] const main_swiper = {
'init' : function () { this.action(); }, 'action' : function () { window.addEventListener('load', function () { const swiper1 = new Swiper('.m1 .info_slide', { loop: true, autoplay: { delay: 4000, disableOnInteraction: false }, pagination: { el: '.m1 .dots', clickable: true }, navigation: { prevEl: '.m1 .prev', nextEl: '.m1 .next', clickable: true }, allowTouchMove: true, // 모바일/PC 드래그 모두 허용 simulateTouch: true, // 마우스로 드래그 허용 grabCursor: true, // 마우스 올렸을 때 손바닥 커서 speed: 500, // 슬라이드 전환 속도 on: { init: function () { updateCustomPagination(this); }, slideChangeTransitionEnd: function () { updateCustomPagination(this); } }, slidesPerView: 4, // pc 기본 개수 breakpoints: { 1400: { slidesPerView: 4 // PC }, 750: { slidesPerView: 3 // 태블릿 }, 0: { slidesPerView: 2 // 모바일 } }, }); // 좌우 버튼 기능 document.querySelector('.m1 .prev').addEventListener('click', () => swiper.slidePrev()); document.querySelector('.m1 .next').addEventListener('click', () => swiper.slideNext()); function updateCustomPagination(swiper) { const current = document.querySelector('.m1 .current'); const total = document.querySelector('.m1 .total'); let realIndex = swiper.realIndex + 1; let totalSlides = swiper.slides.length - (swiper.loop ? 2 : 0); // loop 시 복제 슬라이드 제외 current.textContent = realIndex.toString().padStart(2, '0'); total.textContent = totalSlides.toString().padStart(2, '0'); } // 플레이 버튼 기능 const playBtn = document.querySelector('.m1 .swiper-play'); const stopBtn = document.querySelector('.m1 .swiper-stop'); if (playBtn && stopBtn) { playBtn.addEventListener('click', function () { swiper1.autoplay.start(); playBtn.style.display = 'none'; stopBtn.style.display = 'inline-block'; }); stopBtn.addEventListener('click', function () { swiper1.autoplay.stop(); stopBtn.style.display = 'none'; playBtn.style.display = 'inline-block'; }); } }); } }; [!]CSS[/!] |