테스트 사이트 - 개발 중인 베타 버전입니다

Swiper progressbar 시간 질문이요!! 채택완료

myfree 2년 전 조회 2,172

https://codepen.io/ndolphin/pen/OJBKbgp

 

위 링크에 예제 만들어놨습니다.

.pagination 에 progressbar 를 만들었는데.

게이지가 끝까지 다 차도 슬라이드 되지 않고 한참동안 멈춰있다가 변합니다.

이게 delay 가 3000일때는 정상적으로 progressbar 에 맞춰 잘 움직이는데.

딜레이 시간을 7초정도로 여유롭게 주고 싶습니다. progressbar 게이지 차는 시간을 좀 더디게 할수 없을까요? 

 

 

</p>

<p>    var mainSwiper1 = new Swiper('.swiper', {

        effect: 'fade',

        slidesPerView: 1,

        speed: 2000,

        loop: true,

        watchSlidesProgress: true,

        autoplay: {

            delay: 7000,

            disableOnInteraction: false,

        },

        pagination: {

            el: ".swiper-pagination",

            clickable: true,

        },

          on: {

            init() {

              this.el.addEventListener("mouseenter", () => {

                this.autoplay.stop();

              });</p>

<p>              this.el.addEventListener("mouseleave", () => {

                this.autoplay.start();

              });

            },

          },         

    });

 </p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
F
2년 전

.swiper .swiper-pagination-bullet-active::before

속성에서 

animation: slide-progress 3s cubic-bezier(0.3, 0, 0.3, 1) forwards;

이부분이 애니메이션을 나타내는 부분인데 저기 저 3s를 

animation: slide-progress 7s cubic-bezier(0.3, 0, 0.3, 1) forwards; 

이렇게 바꾸시면 됩니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

이것도 참고를 해보세요~

var mainSwiper1 = new Swiper('.swiper', {     effect: 'fade',     slidesPerView: 1,     speed: 2000,     loop: true,     watchSlidesProgress: true,     autoplay: {         delay: 7000,         disableOnInteraction: false,         },     pagination: {         el: ".swiper-pagination",         clickable: true,     },     on: {         init() {             this.el.addEventListener("mouseenter", () => {                 this.autoplay.stop();             });             this.el.addEventListener("mouseleave", () => {                 this.autoplay.start();             });         },         progress() {             var swiper = this;             for (var i = 0; i < swiper.slides.length; i++) {                 var slideProgress = swiper.slides[i].progress;                 var innerOffset = swiper.width * 0.5;                 var innerTranslate = slideProgress * innerOffset;                 swiper.slides[i].querySelector(".progressbar").style.transform =                     "translateX(" + innerTranslate + "px)";             }         },     }, });

progress() 함수가 게이지의 움직임을 담당합니다. 만약 게이지의 움직임을 더 느리게 하려면 innerTranslate 값을 조절하면 됩니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인