You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Slick Carousel中添加随导航点击更新的进度条

滑块导航与进度条同步实现

需求说明:
我有一组编号1-5的滑块导航图标,点击任意图标时,绿色进度条会随之更新。例如点击第2项时,进度条的绿色部分会显示40%……无论Slick Carousel中有多少项,核心需求是绿色背景能同步更新,逻辑类似slickCount/100或slickCount*100,我的进度条类名为"progress-bar__inner"。
更新说明:代码已更新。

HTML代码

<div class="container">
  <div class="slider slider-for">
    <div class="slider-content">1</div>
    <div class="slider-content">2</div>
    <div class="slider-content">3</div>
    <div class="slider-content">4</div>
    <div class="slider-content">5</div>
  </div>
  <div class="slider-nav-wrapper">
   <div class="slider slider-nav">
      <div class="icons">1</div>
      <div class="icons">2</div>
      <div class="icons">3</div>
      <div class="icons">4</div>
      <div class="icons">5</div>
    </div>
    <div class="progress-bar">
      <div class="progress-bar__inner"></div>
    </div>   
  </div>
</div>

CSS代码

body{
  background:#ccc;
}
.container {
  font-family:Arial;
  max-width:800px;
  display:block;
  margin:0 auto;
  position: relative;
}
.slider-content {
  background: #fff;
  padding: 3rem;
  font-size: 3rem;
  text-align: center;
  height: 200px;
}
.slider-nav-wrapper {
  position: absolute;
  left:3rem;
  right: 3rem;
  bottom: 3rem;
}
.slider-nav-wrapper .icons {
    background: black;
    color: #3498db;
    font-size: 1rem;
    margin: 0 .5rem;
    position: relative;
    text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
}
.progress-bar {
  width: 100%;
  height: 10px;
  border-radius: 10px;
  background: gray;
  position: relative;
  overflow: hidden;
  margin-top: 1rem;
}
.progress-bar__inner {
  background: green;
  position: absolute;
  height: 10px;
  top: 0;
  left: 0;
  width: 0;
  transition: width 0.3s ease;
}

JavaScript代码

$('.slider-for').slick({
   slidesToShow: 1,
   slidesToScroll: 1,
   arrows: false,
   fade: false,
   draggable: false,
   swipe: false,
   swipeToSlide: false,
   touchMove: false,
   asNavFor: '.slider-nav'
 });
 $('.slider-nav').slick({
   slidesToShow: 5,
   slidesToScroll: 1,
   asNavFor: '.slider-for',
   dots: false,
   arrows: false,
   focusOnSelect: true,
   variableWidth: true
 });

$('.slider-nav .icons').on('click', function() {
    var index = $(this).index();
    var progressBar = $('.progress-bar__inner');
    var itemWidth = 100 / $('.slider-nav .icons').length;
    var progress = (index + 1) * itemWidth;

    progressBar.css('width', progress + '%');
  });

内容的提问来源于stack exchange,提问作者clarkf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:16:36