css中带进度条的轮播图

admin 轻心小站 关注 LV.19 运营
发表于前端技术学习版块 css,教程

CSS中带进度条的轮播图是一种非常流行的界面效果,它能够让用户更清晰地知道轮播图中每个元素的展示时间和位置。下面我们就来学习一下如何实现这样一个效果。/* 接下来是 CSS 代码 */ .slider

CSS中带进度条的轮播图是一种非常流行的界面效果,它能够让用户更清晰地知道轮播图中每个元素的展示时间和位置。下面我们就来学习一下如何实现这样一个效果。

/* 接下来是 CSS 代码 */

.slider-container {
  /* 设置轮播图容器的样式 */
  width: 100%;
  max-width: 600px;
  height: 400px;
  margin: auto;
  position: relative;
  overflow: hidden;
}

.slider-container .slider-wrapper {
  /* 设置轮播图外层容器的样式 */
  display: flex;
  width: 300%;
  height: 100%;
  position: absolute;
  transition: transform 0.5s ease-in-out;
}

.slider-container .slider-item {
  /* 设置轮播图项的样式 */
  width: 33.3333%;
  height: 100%;
  background-color: #ccc;
  flex-shrink: 0;
  position: relative;
}

.slider-container .slider-item img {
  /* 设置轮播图元素的样式 */
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slider-container .slider-progress-bar {
  /* 设置进度条的样式 */
  height: 5px;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #ddd;
}

.slider-container .slider-progress-bar .slider-progress {
  /* 设置进度条递进的样式 */
  height: 100%;
  width: 0;
  background-color: #ff5722;
}

/* 接下来是 JS 代码 */

const sliderWrapper = document.querySelector('.slider-wrapper');
const sliderItems = document.querySelectorAll('.slider-item');
const progressBar = document.querySelector('.slider-progress');

let index = 0;
let inProgress = false;

function nextSlide() {
  if (!inProgress) {
    inProgress = true;
    index++;
    if (index >= sliderItems.length) {
      index = 0;
    }
    sliderWrapper.style.transition = 'transform 0.5s ease-in-out';
    sliderWrapper.style.transform = `translateX(-${index * 100 / 3}%)`;
    progressBar.style.width = '0';
    setTimeout(() => {
      inProgress = false;
      progressBar.style.transition = 'width 5s linear';
      progressBar.style.width = '100%';
    }, 500);
  }
}

setInterval(nextSlide, 5000); 

以上就是带进度条的轮播图的全部代码,通过这段代码,我们可以轻松地实现一个具有进度条样式的轮播图,并控制它的轮播速度和动画方式。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: css中带进度条的轮播图

粉丝

0

关注

0

收藏

0

已有0次打赏