如果陈述使我感到困惑

时间:2019-04-22 07:25:38

标签: javascript if-statement slider

我在这里为滑块提供了这段代码,但我不明白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();

1 个答案:

答案 0 :(得分:0)

我认为您的问题出在思考阵列上的特定数字。假设您有一个包含n数字的数组。

if (current === sliderImages.length - 1) {
  current = -1;
}

sliderImages.length将为n(例如10,或20,任何数字)。

您的current变量可告诉您当前正在显示的图像。因此,如果您单击向右箭头,那么您想向右移动一步。但是,如果您位于数组的最后一个位置,则 next 图像将是 first 图像。所以你做current = -1

换句话说:如果正在检查是否在最后一张图像中,请移回数组的第一位置。

相关问题