프로그래스 바 + 페이징 fraction 들어간 slick slider
See the Pen slick slider progress bar and page fraction example by publisher.kim (@publisherkim) on CodePen.
html
<div class="slide_wrap">
<div class="slick_slider">
<div class="item item1">
첫번째 슬라이드
</div>
<div class="item item2">
두번째 슬라이드
</div>
</div>
<div class="slider_etc">
<div class="slide_info">
<div class="slide_paging"></div>
<div class="slide_progress"><div class="progress"></div></div>
</div>
<div class="slide_btns">
<button class="btn_prev">이전</button>
<button class="btn_playcontrol pause">멈춤</button>
<button class="btn_next">다음</button>
</div>
</div>
</div>
css
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
.slide_wrap{width:600px; height:300px; margin: 0 auto;}
.slide_wrap .item{width:100%; height:300px; box-sizing:border-box; padding: 30px; font-size: 20px; font-family: 'pretendard';}
.slide_wrap .item1{background: rgb(90,207,172);}
.slide_wrap .item2{background: rgb(239,146,128);}
.slide_wrap .slide_btns, .slide_wrap .slide_info, .slide_wrap .slide_paging{display:inline-block; vertical-align: middle;}
.slide_wrap .slider_etc{text-align: right;}
.slide_wrap .slide_paging{font-family: 'pretendard'; font-size: 13px; padding-top:5px; width:50px; text-align: left;}
.slide_wrap .slide_info .slide_progress {height: 2px; width: 110px; display: inline-block;}
.slide_wrap .slide_info .slide_progress .progress {height: 2px; background: #5aa6a8;}
.slide_wrap .slide_btns button{display: inline-block;width:11px; height:11px; border:0; font-size:0; cursor: pointer; padding: 0; vertical-align: middle;}
.slide_wrap .slide_btns .btn_playcontrol{background: url(https://umings.github.io/images/btn_slide_play.png) no-repeat center;}
.slide_wrap .slide_btns .btn_playcontrol.pause{background: url(https://umings.github.io/images/btn_slide_pause.png) no-repeat center;}
.slide_wrap .slide_btns .btn_prev{background: url(https://umings.github.io/images/btn_slide_prev2.png) no-repeat center;}
.slide_wrap .slide_btns .btn_next{background: url(https://umings.github.io/images/btn_slide_next2.png) no-repeat center;}
js *jqeury 필요
$(document).ready(function () {
var time = 3;
var isPause,
tick,
percentTime;
var $bar = $('.slide_progress .progress');
var $status = $('.slide_wrap .slide_paging');
var $slick_carousel = $(".slide_wrap .slick_slider");
$slick_carousel.on('init', function(event, slick) {
$(".slick_slider .item").eq(0).addClass("active");
});
$slick_carousel.on('afterChange', function(event, slick, currentSlide){
$(".slick_slider .item").removeClass("active");
$(this).find(".item").eq(currentSlide).addClass("active")
});
$slick_carousel.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
var i = (currentSlide ? currentSlide : 0) + 1;
$status.html('<span class="count">'+'0'+ i + '</span> / <span class="pagecount">' +'0'+ slick.slideCount + '</span>');
});
$('.slick_slider').slick({
slidesToShow: 1,
slidesToScroll: 1,
arrows: false
});
$(".btn_playcontrol").click(function(){
if($(this).hasClass("pause")){
$(this).removeClass("pause")
isPause = true;
}else{
$(this).addClass("pause")
isPause = false;
}
})
function startProgressbar() {
resetProgressbar();
percentTime = 0;
isPause = false;
tick = setInterval(interval, 10);
}
function interval() {
if (isPause === false) {
percentTime += 1 / (time + 0.1);
$bar.css({
width: percentTime + "%"
});
if (percentTime >= 100) {
$slick_carousel.slick('slickNext');
startProgressbar();
}
}
}
function resetProgressbar() {
$bar.css({
width: 0 + '%'
});
clearTimeout(tick);
}
startProgressbar();
$('.btn_prev').click(function() {
$(".slick_slider").slick('slickPrev');
if ($(".btn_playcontrol").hasClass("pause")){
startProgressbar();
}
});
$('.btn_next').click(function() {
$(".slick_slider").slick('slickNext');
if ($(".btn_playcontrol").hasClass("pause")){
startProgressbar();
}
});
})
728x90
'퍼블리싱 > HTML | CSS | Javascript' 카테고리의 다른 글
fixed header + gnb (header에 hover시 gnb 열리면서 on효과, 스크롤시 on효과) (0) | 2023.05.17 |
---|---|
swiper slider text fadein 효과 (0) | 2023.05.16 |
카카오맵 이미지 마커 + 커스텀 오버레이 (마커 클릭시 해당장소로 이동) (0) | 2023.05.16 |
background circle animation loading (0) | 2023.05.15 |
swiper slider custom navigation (0) | 2023.05.15 |