swiper 슬라이드 progress바 질문이요!

swiper 슬라이드 progress바 질문이요!

QA

swiper 슬라이드 progress바 질문이요!

답변 1

본문

1.에서1846519728_1677024249.8226.png

2.로

1846519728_1677024370.3138.png

안녕하세요. swiper 슬라이드 진행률바를 2번째화면처럼  채워지게 수정하고싶은데 어떻게 수정하면 좋을까요ㅠㅠ

 

 

https://jsfiddle.net/33gz6qh7/10/

소스는 위에 url 참고해주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 1

css


$blue: #0080ff;
$blue-cc: #cce6ff;
.slider{
  position: relative;
}
.swiper-slide{
  border: 1px solid #ccc;
  height: 100px;
  text-align: center;
  padding: 20px 0;
}
.slider-nav{
  display: flex;
  align-items: center;
}
.slider-arr{
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  width: 55px;
  margin-right: 27px;
}
.slider-progress-wrap{
  position: relative;
  flex: 1 1 auto;
}
.slider-progress{
  position: absolute;
  top: 14px;
  right: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: gray;
}
.slider-progress2{
  position: absolute;
  top: 14px;
  right: 0;
  left: 0;
  width: 0;
  height: 3px;
  background: blue;
  transition : 0.25s ease-out;
}
.slider-num{
  margin-left: 20px;
  flex: 0 0 auto;
  font-size: 24px;
  line-height: 24px;
  color: blue;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  padding-right: 5px;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{
  background: pink;
}
.slider-scrollbar .swiper-scrollbar-drag{
  cursor: pointer;
  width: 5px;
  height: 2px;
  margin-top: 14.9px;
  background-color: blue;
  box-shadow: 0 4px 10px rgba(27, 75, 255, 0.4);
}
.portfolio{
  overflow: hidden;
  }
.prev,.next{
  cursor: pointer;
}

 

js


var portfolio = new Swiper('.portfolio', {
  slidesPerView: 3,
  spaceBetween: 0,
  preventClicks: false,
  preventClicksPropagation: false,
  navigation: {
    nextEl: '.next',
    prevEl: '.prev'
  },
  scrollbar: {
    el: '.slider-scrollbar',
    draggable: true,
    hide: false,
    snapOnRelease: false,
    dragSize: 30
  },
  breakpoints: {
    1050: {
      slidesPerView: 2
    },
    640: {
      slidesPerView: 1
    }
  },
  on: {
    init: function() {
      $('.js-current-slide').text(this.realIndex + 1);
      $('.js-all-slide').text(this.slides.length);
    },
    slideChange: function() {
      $('.js-current-slide').text(this.realIndex + 1);
    },
    setTranslate: function() {
      var progress = translateVal(this.scrollbar.dragEl);
      $('.slider-progress2').css('width', progress + 'px');
    },
    slideChangeTransitionStart: function() {
      var progress = translateVal(this.scrollbar.dragEl);
      $('.slider-progress2').css('width', progress + 'px');
    },
  }
});
function translateVal(el) {
  var progress = el.style.transform.match(/translate3d\((.+)px,(.+)px,(.+)px\)/);
  return progress[1];
}

 

 

저 드래그바 기능이 있는 상태로서는.. 저게 최선이지 않을까.... 싶네요..

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 18
© SIRSOFT
현재 페이지 제일 처음으로