javascript - 如何在我的自定义滑块 JavaScript 代码中插入自动播放选项
问题描述
我创建了一个滑块代码,但问题是我必须让它自动播放。这段代码实际上与我的自定义滑块兼容,我只想让它自动播放。我尝试了一些如下所示的代码:
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("contents-2");
var slides2 = document.getElementsByClassName("contents-1");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = slides.length
}
for (i = 0; i < slides.length; i++) {
slides[i].className = slides[i].className.replace(" cont-1", "");
}
for (i = 0; i < slides2.length; i++) {
slides2[i].className = slides2[i].className.replace(" cont-2", "");
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active-page", "");
}
dots[slideIndex - 1].className += " active-page";
slides[slideIndex - 1].className += " cont-1";
slides2[slideIndex - 1].className += " cont-2";
setTimeout(currentSlide, 2000);
}
请帮我处理这段代码,上面的代码不会自动播放,谢谢。
解决方案
我尝试的新代码如下:
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("contents-2");
var slides2 = document.getElementsByClassName("contents-1");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].className = slides[i].className.replace(" cont-1", "");
}
for (i = 0; i < slides2.length; i++) {
slides2[i].className = slides2[i].className.replace(" cont-2", "");
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active-page", "");
}
dots[slideIndex-1].className += " active-page";
slides[slideIndex-1].className += " cont-1";
slides2[slideIndex-1].className += " cont-2";
setTimeout(function() {
showSlides(slideIndex += 1);
}, 4000);
}
上面的代码完美运行,但是当我使用导航按钮时,它会以非常高的速度自动播放
推荐阅读
- python - 从文本文件导入数字和数据并将它们单独添加到数组中并在数组中输入位置以获取值
- c# - 如何在列表中存储多个泛型类型
>? - mysql - 具有功能的 MySQL CASE 构造函数
- vb.net - AVL树如何在插入时平衡树
- c# - 使用 timeScale 0f 暂停游戏时如何暂停/恢复协程?
- git - 如何更改提交编辑器中显示的内容?
- c++ - 是否有一种解决方法可以在 c++ 中为短裤定义用户定义的文字?
- bash - 比较 2 个 csv 文件并将常用字段记录合并到第一个文件中
- javascript - Vue 组件通过上下文获取 props
- html - 带间距的 CSS flexbox 装订线