帮我把这堆代码简便化var carousel = document.querySelector('.carousel');var ul = carousel.querySelector('.carousel-list');var li = carousel.querySelectorAll('.carousel-item');var len = li.length;var prev = carousel.querySelector('.carousel-prev');var next = carousel.querySelector('.carousel-next');var dots = carousel.querySelectorAll('.carousel-dot');var currentIndex = 0;var timer = null;function play() { timer = setInterval(function() { currentIndex++; if(currentIndex >= len) { currentIndex = 0; } changeTo(currentIndex); }, 2000);}function changeTo(index) { ul.style.left = -index * 500 + 'px'; for(var i = 0; i < len; i++) { dots[i].className = 'carousel-dot'; } dots[index].className = 'carousel-dot active'; currentIndex = index;}play();prev.onclick = function() { currentIndex--; if(currentIndex < 0) { currentIndex = len - 1; } changeTo(currentIndex);}next.onclick = function() { currentIndex++; if(currentIndex >= len) { currentIndex = 0; } changeTo(currentIndex);}for(var i = 0; i < len; i++) { dots[i].index = i; dots[i].onclick = function() { changeTo(this.index); }}carousel.onmouseover = function() { clearInterval(timer);}carousel.onmouseout = function() { play();}
时间: 2024-04-01 20:32:59 浏览: 21
以下是简化后的代码:
const carousel = document.querySelector('.carousel');
const ul = carousel.querySelector('.carousel-list');
const li = carousel.querySelectorAll('.carousel-item');
const len = li.length;
const prev = carousel.querySelector('.carousel-prev');
const next = carousel.querySelector('.carousel-next');
const dots = carousel.querySelectorAll('.carousel-dot');
let currentIndex = 0;
let timer = null;
function play() {
timer = setInterval(() => {
currentIndex++;
if (currentIndex >= len) {
currentIndex = 0;
}
changeTo(currentIndex);
}, 2000);
}
function changeTo(index) {
ul.style.left = -index * 500 + 'px';
dots.forEach(dot => dot.classList.remove('active'));
dots[index].classList.add('active');
currentIndex = index;
}
play();
prev.onclick = () => {
currentIndex--;
if (currentIndex < 0) {
currentIndex = len - 1;
}
changeTo(currentIndex);
};
next.onclick = () => {
currentIndex++;
if (currentIndex >= len) {
currentIndex = 0;
}
changeTo(currentIndex);
};
dots.forEach((dot, index) => {
dot.index = index;
dot.onclick = function() {
changeTo(this.index);
}
});
carousel.onmouseover = () => clearInterval(timer);
carousel.onmouseout = () => play();