首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯js自动轮播代码

以下是一个使用纯 JavaScript 实现的简单自动轮播代码示例:

HTML 部分:

代码语言:txt
复制
<div class="carousel">
  <div class="slide">Slide 1</div>
  <div class="slide">Slide 2</div>
  <div class="slide">Slide 3</div>
</div>

CSS 部分:

代码语言:txt
复制
.carousel {
  width: 300px;
  height: 200px;
  overflow: hidden;
  position: relative;
}

.slide {
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slide.active {
  opacity: 1;
}

JavaScript 部分:

代码语言:txt
复制
const slides = document.querySelectorAll('.slide');
let currentIndex = 0;

function showSlide(index) {
  slides.forEach((slide, i) => {
    slide.classList.remove('active');
    if (i === index) {
      slide.classList.add('active');
    }
  });
}

function nextSlide() {
  currentIndex = (currentIndex + 1) % slides.length;
  showSlide(currentIndex);
}

// 初始显示第一张幻灯片
showSlide(currentIndex);

// 设置自动轮播,每隔 3 秒切换到下一张
setInterval(nextSlide, 3000);

优势:

  • 简单易懂,易于实现和维护。
  • 不依赖任何外部库或框架,减少资源加载。

应用场景:

  • 适用于简单的网页幻灯片展示,如产品介绍、图片展示等。

可能出现的问题及解决方法:

  • 如果幻灯片切换不流畅,可能是 CSS 过渡效果设置不当,可以调整 transition 属性的时间和缓动函数。
  • 若轮播顺序错误,检查 nextSlide 函数中索引的计算逻辑。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • js 水平轮播和透明度轮播的实现

    首先在HTML里建一个绝对定位的div盒子,然后在这个div盒子里用列表的方式插入四张图片,设置为绝对定位,并且块排列;接着在js中实现动态效果,透明轮播的实现就是将前一张图片的透明度设置为0,需要轮播的那一张图片的透明度设置为...1,在js的对象中实现,最后实现手动点击轮播,子弹轮播,自动轮播。...本次轮播实现借用了上次animate的函数封装 animate.js animate封装代码如下 //返回el对象css样式中的property属性值 function getStyle(el, property...el.style[property] = current + speed + "px"; } } }, 20); } 透明度轮播实现代码...其他的实现方法基本和透明度轮播类似,但是轮播是改变的是距离left 轮播也应用了封装的animate 水平轮播实现代码 <!

    12.5K10

    JS实现超简易轮播图

    JS代码 1.原理 由于轮播图已经横向排列, 所以只要控制.swiper向x轴偏移距离, 就可以实现图片切换, 这里使用transform的translate属性来控制x轴偏移.可以通过transition...复制原来最后一位图片, 放到第一位.当然如果你只往右切换, 则不用将第一位放在最后一位.示例如下(数字代表图片顺序): 初始排列: |1|2|3|4|5| 初始化后排列: |5|1|2|3|4|5|1| 2.代码片段...代码使用ES6语法, 这些无所谓, 具体逻辑知道就行 1.构造器 构造器接收一个变量, 切换轮播图的延时....在构造器里新建了一些常量, 轮播图的DOM, 轮播图片的DOM数组, 轮播图的个数(注意是没有初始化前的图片个数), 以及赋值延时(默认是1000ms) 随后调用初始化函数 constructor (delay...(2000) slider.start() } 4.整体代码 <!

    10.4K30
    领券