【发布时间】:2021-03-13 18:32:32
【问题描述】:
因此,我创建了一个 Carousel 来循环使用 setInterval 为 3000 的图像。我使用 if 语句对这些图像进行了硬编码,以更新图像下方的图标(我将在 2 个链接中放入屏幕截图。)
我正在尝试弄清楚如何使用循环对其进行编码以更新我的图像元素的 src 属性。
变量:
var $rightArrow = document.querySelector('#right-arrow-icon');
var $leftArrow = document.querySelector('#left-arrow-icon');
var $img = document.querySelector('#image-source');
var $circleOne = document.querySelector('#circle-one');
var $circleTwo = document.querySelector('#circle-two');
var $circleThree = document.querySelector('#circle-three');
var $circleFour = document.querySelector('#circle-four');
var $circleFive = document.querySelector('#circle-five');
我当前的代码来完成我希望能够遍历数组的工作:
var intervalID = setInterval(rightClick, 3000);
$rightArrow.addEventListener('click', rightClick);
function rightClick(event) {
if ($img.getAttribute('src') === 'images/001.png') {
$img.setAttribute('src', 'images/004.png');
$circleOne.setAttribute('class', 'far fa-circle');
$circleTwo.setAttribute('class', 'fas fa-circle');
} else if ($img.getAttribute('src') === 'images/004.png') {
$img.setAttribute('src', 'images/007.png');
$circleTwo.setAttribute('class', 'far fa-circle');
$circleThree.setAttribute('class', 'fas fa-circle');
} else if ($img.getAttribute('src') === 'images/007.png') {
$img.setAttribute('src', 'images/025.png');
$circleThree.setAttribute('class', 'far fa-circle');
$circleFour.setAttribute('class', 'fas fa-circle');
} else if ($img.getAttribute('src') === 'images/025.png') {
$img.setAttribute('src', 'images/039.png');
$circleFour.setAttribute('class', 'far fa-circle');
$circleFive.setAttribute('class', 'fas fa-circle');
} else if ($img.getAttribute('src') === 'images/039.png') {
$img.setAttribute('src', 'images/001.png');
$circleFive.setAttribute('class', 'far fa-circle');
$circleOne.setAttribute('class', 'fas fa-circle');
}
clearInterval(intervalID);
intervalID = setInterval(rightClick, 3000);
}
【问题讨论】:
标签: javascript dom setinterval ecmascript-5