I have a requirement where I have an <image>
tag linked to a series of animated gif images.
I want to play those animations (gif) on mouse over
state, one after another (like a playlist). Then on mouse Out
I want to return to some original img source (like a static poster image, waiting for user rollover
state).
Please find pseudo code below that I have tried:
function nextSlide() {
document.getElementsByTagName('img').setAttribute('src', slides[currentSlide]);
currentSlide = (currentSlide + 1) % slides.length;
}
document.getElementsByTagName('img').addEventListner('mouseover',function(){
slides = gifImages;
var slideInterval = setInterval(nextSlide,1000);
});
document.getElementsByTagName('img').addEventListener('mouseout', function(){
document.getElementsByTagName('img').src = originalImage;
});
Challenges (to fix) from using above code:
1. I want gif image to be replaced only after its animation is completed, but its getting replaced after every delay of timer as I am using setInterval
.
2. On mouse out
it is not returning to original image.
3. First image is also being loaded after 1 sec (since that's rate of setInterval
).
Please let me know if there is any way to achieve this.
Update:
- Issues 2 and 3 is resolved. Now only issue I am facing is to play collection of gif images.