我在这里为滑块提供了这段代码,但我不明白if语句可以做什么。
在我脑海中有2种选择
首先,如果是current === sliderImages.length - 1
然后是current === 1
,然后是第二个,如果是current === sliderImages.length - 1
然后是current === 2
(数组的长度),则取一个。
这是我的(JavaScript)代码:
let sliderImages = document.querySelectorAll(".slide"),
arrowLeft = document.querySelector("#arrow-left"),
arrowRight = document.querySelector("#arrow-right"),
current = 0;
// Clear all images
function reset() {
for (let i = 0; i < sliderImages.length; i++) {
sliderImages[i].style.display = "none";
}
}
// Init slider
function startSlide() {
reset();
sliderImages[0].style.display = "block";
}
// Show prev
function slideLeft() {
reset();
sliderImages[current - 1].style.display = "block";
current--;
}
// Left arrow click
arrowLeft.addEventListener("click", function() {
if (current === 0) {
current = sliderImages.length;
}
slideLeft();
});
// Show next
function slideRight() {
reset();
sliderImages[current + 1].style.display = "block";
current++;
}
// Right arrow click
arrowRight.addEventListener("click", function() {
if (current === sliderImages.length - 1) {
current = -1;
}
slideRight();
});
startSlide();
答案 0 :(得分:0)
我认为您的问题出在思考阵列上的特定数字。假设您有一个包含n
数字的数组。
if (current === sliderImages.length - 1) {
current = -1;
}
sliderImages.length
将为n
(例如10,或20,任何数字)。
您的current
变量可告诉您当前正在显示的图像。因此,如果您单击向右箭头,那么您想向右移动一步。但是,如果您位于数组的最后一个位置,则 next 图像将是 first 图像。所以你做current = -1
换句话说:如果正在检查是否在最后一张图像中,请移回数组的第一位置。