Reputation: 13
I am having some trouble getting my image slideshow to run automatically. I have tried several options but none has worked so far. Any help would be greatly appreciated.
<!DOCTYPE html>
<html lang="en">
<body>
<div class="container">
<div id="showcase">
<img id="imgs" src="./assets/img/achievement-agreement-arms-1068523.jpg">
</div>
</div>
<script type="text/javascript" src="./Javascript/main-slideshow.js"></script></body>
</html>
This is my Javascript code:
let slideImg=['./assets/img/achievement-agreement-arms-1068523.jpg',
'./assets/img/application-calculator-coffee-cup-1050304.jpg',
'./assets/img/chain-close-up-display-1036857.jpg',
'./assets/img/coffee-computer-cup-234394.jpg'];
let i = 0
setTimeout( function slider (){document.imgs.src = slideImg[i]; if (i<slideImg.lenght - 1) {i++;}else{i=0;}, 1000);
window.onload=slideImg;
I tried placing a complete path in the array list for the images, but it doesn't work.
Upvotes: 1
Views: 59
Reputation: 6516
Besides the typos and invalid codes, there's some points to be evaluated:
document.imgs
is not going to select a DOM element with id='imgs'
, you need document.querySelector('#IdOfElement');
or document.getElementById('IdOfElement');
setTimeout()
will only happen once, after that, it won't happen again, in this case the method you are looking for is probable setInterval()
(it's not a good method to be used, but it works in this case, so go on).
I suggest you to make some free online course of basic javascript and also try to pay attention to the code, avoidin those typos you had.
The code below s probably what you need, please take a look.
let slideImg=['./assets/img/achievement-agreement-arms-1068523.jpg',
'./assets/img/application-calculator-coffee-cup-1050304.jpg',
'./assets/img/chain-close-up-display-1036857.jpg',
'./assets/img/coffee-computer-cup-234394.jpg'];
let i = 0
setInterval( function slider (){
document.querySelector('#imgs').src = slideImg[i];
console.log('new src: '+ slideImg[i]);
if (i < slideImg.length - 1) {
i++;
}else{
i=0;
}
},
1000);
window.onload=slideImg;
<div class="container">
<div id="showcase">
<img id="imgs" src="./assets/img/achievement-agreement-arms-1068523.jpg">
</div>
</div>
Upvotes: 1