JavaScript Slideshow Examples
Create interactive slideshows with JavaScript - manual navigation, automatic transitions, and thumbnail selection.
Introduction to JavaScript Slideshows
JavaScript slideshows are an essential feature for modern websites. They allow you to showcase multiple images or content sections in an engaging way. With JavaScript, you can create slideshows with manual navigation, automatic transitions, thumbnails, and more.
- Manual navigation with previous/next buttons
- Automatic transitions with timing controls
- Thumbnail navigation for direct access
- Transition effects (fade, slide, zoom)
- Responsive design for all devices
Example 1: Manual Slideshow
This manual slideshow allows users to navigate between slides using previous and next buttons. It demonstrates basic DOM manipulation and array handling.
// Manual Slideshow Implementation
const slides = ['banner1.jpg', 'banner2.jpg', 'banner3.jpg', 'banner4.jpg'];
let currentSlide = 0;
const slideElement = document.getElementById('manualSlide');
function showSlide(n) {
// Update current slide index
currentSlide += n;
// Handle boundaries
if (currentSlide >= slides.length) currentSlide = 0;
if (currentSlide < 0) currentSlide = slides.length - 1;
// Update slide display
slideElement.style.backgroundImage = `url(${slides[currentSlide]})`;
}
// Initialize first slide
showSlide(0);
Manual Slideshow Demo
Example 2: Automatic Slideshow
An automatic slideshow that transitions between slides every 3 seconds. Users can pause and resume the slideshow.
// Automatic Slideshow Implementation
const autoSlides = [
'https://via.placeholder.com/800x400/4a6fa5/ffffff?text=Slide+1',
'https://via.placeholder.com/800x400/6f4a5f/ffffff?text=Slide+2',
'https://via.placeholder.com/800x400/5f6f4a/ffffff?text=Slide+3',
'https://via.placeholder.com/800x400/4a5f6f/ffffff?text=Slide+4'
];
let currentAutoSlide = 0;
let slideInterval;
const autoSlideElement = document.getElementById('autoSlide');
const playPauseBtn = document.getElementById('playPauseBtn');
function startSlideShow() {
slideInterval = setInterval(() => {
currentAutoSlide = (currentAutoSlide + 1) % autoSlides.length;
updateAutoSlide();
}, 3000);
playPauseBtn.innerHTML = ' Pause';
}
function stopSlideShow() {
clearInterval(slideInterval);
playPauseBtn.innerHTML = ' Play';
}
function updateAutoSlide() {
autoSlideElement.style.opacity = 0;
setTimeout(() => {
autoSlideElement.style.backgroundImage = `url(${autoSlides[currentAutoSlide]})`;
autoSlideElement.style.opacity = 1;
}, 500);
}
function toggleSlideShow() {
if (slideInterval) {
stopSlideShow();
} else {
startSlideShow();
}
}
// Initialize slideshow
autoSlideElement.style.backgroundImage = `url(${autoSlides[0]})`;
autoSlideElement.style.transition = 'opacity 0.5s ease-in-out';
startSlideShow();
Automatic Slideshow Demo
Example 3: Slideshow with Thumbnails
This slideshow includes thumbnail navigation for direct access to specific slides. Clicking a thumbnail displays that slide in the main view.
// Thumbnail Slideshow Implementation
const slidesWithThumbs = [
{ main: 'banner1.jpg', thumb: 'thumb1.jpg' },
{ main: 'banner2.jpg', thumb: 'thumb2.jpg' },
{ main: 'banner3.jpg', thumb: 'thumb3.jpg' },
{ main: 'banner4.jpg', thumb: 'thumb4.jpg' }
];
const thumbSlideElement = document.getElementById('thumbSlide');
const thumbnailsContainer = document.getElementById('thumbnails');
function initThumbSlideshow() {
// Create thumbnails
slidesWithThumbs.forEach((slide, index) => {
const thumb = document.createElement('div');
thumb.className = 'thumbnail';
thumb.style.backgroundImage = `url(${slide.thumb})`;
thumb.onclick = () => showThumbSlide(index);
thumbnailsContainer.appendChild(thumb);
});
// Show first slide
showThumbSlide(0);
}
function showThumbSlide(index) {
// Update main slide
thumbSlideElement.style.backgroundImage = `url(${slidesWithThumbs[index].main})`;
// Update active thumbnail
const thumbnails = document.querySelectorAll('.thumbnail');
thumbnails.forEach((thumb, i) => {
thumb.classList.toggle('active', i === index);
});
}
// Initialize slideshow
initThumbSlideshow();
Thumbnail Slideshow Demo
More Slideshow Techniques
Enhance your slideshows with these advanced techniques:
- Add transition effects (fade, slide, zoom)
- Implement touch/swipe support for mobile devices
- Add captions or text overlays to slides
- Create a progress indicator for automatic slideshows
- Implement lazy loading for better performance
Experiment with these techniques to create engaging, interactive slideshows for your websites!