var img1 = document.getElementById("img1"); var pre = document.getElementById("pre"); var next = document.getElementById("next"); var lilist = document.getElementsByTagName("li"); var imgsrc = ["img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg"]; var i = 0;setInterval(changeimg, 3000); function changeimg() { i++; if (i >= imgsrc.length) { i = 0; } img1.setAttribute("src", imgsrc[i]); addcirclebg(); } function addcirclebg() { for (var k = 0; k < lilist.length; k++) { if (k == i) { lilist[k].className = "bgcolor"; } else { lilist[k].className = ""; } } } next.onclick = changeimg; pre.onclick = function () { i--; if (i < 0) { i = imgsrc.length - 1; } img1.setAttribute("src", imgsrc[i]); addcirclebg(); }; for (var j = 0; j < lilist.length; j++) { lilist[j].setAttribute("index", j); lilist[j].onclick = function () { var a = this.getAttribute("index"); console.log(a); img1.setAttribute("src", imgsrc[a]); for (var k = 0; k < lilist.length; k++) { if (lilist[k] == this) { this.className = "bgcolor"; } else { lilist[k].className = ""; } } }; }检查代码
时间: 2023-06-26 13:03:31 浏览: 144
这段代码实现了一个图片轮播的功能,通过定时器定时切换图片和点击箭头或圆点切换图片。以下是代码检查的建议:
1. 变量名建议使用有意义的名称,便于代码阅读和理解。
2. 代码缩进建议使用空格,而不是 tab,以保持风格的一致性。
3. 在添加或删除 class 名称时,可以使用 classList 属性,比较直观和方便。
4. 可以考虑将图片地址和圆点数量作为参数传入函数,增加代码的可重用性。
5. 可以对圆点添加鼠标移入移出事件,实现鼠标悬停时停止轮播的效果。
参考改进代码如下:
```javascript
var sliderImg = document.getElementById("slider-img");
var prevBtn = document.getElementById("prev-btn");
var nextBtn = document.getElementById("next-btn");
var circleList = document.querySelectorAll(".circle");
var imgSrcList = ["img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg"];
var imgIndex = 0; // 当前显示的图片索引
var timer = null; // 定时器
// 切换图片
function changeImg() {
imgIndex++;
if (imgIndex >= imgSrcList.length) {
imgIndex = 0;
}
sliderImg.setAttribute("src", imgSrcList[imgIndex]);
addCircleBg();
}
// 添加圆点背景色
function addCircleBg() {
for (var i = 0; i < circleList.length; i++) {
if (i === imgIndex) {
circleList[i].classList.add("active");
} else {
circleList[i].classList.remove("active");
}
}
}
// 点击上一个按钮
prevBtn.onclick = function() {
imgIndex--;
if (imgIndex < 0) {
imgIndex = imgSrcList.length - 1;
}
sliderImg.setAttribute("src", imgSrcList[imgIndex]);
addCircleBg();
};
// 点击下一个按钮
nextBtn.onclick = function() {
changeImg();
};
// 点击圆点
for (var i = 0; i < circleList.length; i++) {
circleList[i].setAttribute("index", i);
circleList[i].onclick = function() {
imgIndex = parseInt(this.getAttribute("index"), 10);
sliderImg.setAttribute("src", imgSrcList[imgIndex]);
addCircleBg();
};
}
// 鼠标移入停止轮播,移出继续轮播
sliderImg.onmouseover = function() {
clearInterval(timer);
};
sliderImg.onmouseout = function() {
timer = setInterval(changeImg, 3000);
};
// 初始状态
addCircleBg();
timer = setInterval(changeImg, 3000);
```
阅读全文