Travel Packages Slider Template
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Voyage Elite | Luxury Travel Experiences</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600;700&display=swap" rel="stylesheet"> </head> <body> <div class="container"> <header class="main-header"> <h1 class="logo">VOYAGE ELITE</h1> <p class="tagline">Curated Luxury Travel Experiences</p> </header> <div class="slider-container"> <!-- Slide 1 --> <div class="slide active"> <div class="image-container"> <img src="https://images.unsplash.com/photo-1537996194471-e657df975ab4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1920&q=80" alt="Bali" class="travel-image"> <div class="floating-badge">Most Popular</div> </div> <div class="content-container"> <span class="destination-tag">Tropical Paradise</span> <h2 class="destination-name">Bali Escape</h2> <div class="rating"> <div class="stars"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star-half-alt"></i> </div> <span class="rating-text">4.7 (128 reviews)</span> </div> <div class="price-container"> <div class="price">$2,499</div> <div class="price-label">per person</div> </div> <div class="destination-details"> <div class="detail-item"> <i class="fas fa-calendar-alt"></i> <span>7 Days / 6 Nights</span> </div> <div class="detail-item"> <i class="fas fa-users"></i> <span>Small Group</span> </div> <div class="detail-item"> <i class="fas fa-plane"></i> <span>Flight Included</span> </div> </div> <p class="description"> Experience luxury in paradise with private villas, cultural tours, and exclusive beach access. Includes all meals, spa treatments, and personal guide. </p> <button class="cta-button"> <i class="fas fa-calendar-check"></i> Book Now </button> </div> </div> <!-- Slide 2 --> <div class="slide"> <div class="image-container"> <img src="https://images.unsplash.com/photo-1502602898657-3e91760cbb34?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1920&q=80" alt="Paris" class="travel-image"> <div class="floating-badge" style="background: #9c27b0;">Romantic</div> </div> <div class="content-container"> <span class="destination-tag">European Romance</span> <h2 class="destination-name">Paris Getaway</h2> <div class="rating"> <div class="stars"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> </div> <span class="rating-text">5.0 (94 reviews)</span> </div> <div class="price-container"> <div class="price">$3,299</div> <div class="price-label">per person</div> </div> <div class="destination-details"> <div class="detail-item"> <i class="fas fa-calendar-alt"></i> <span>5 Days / 4 Nights</span> </div> <div class="detail-item"> <i class="fas fa-users"></i> <span>Private Tour</span> </div> <div class="detail-item"> <i class="fas fa-utensils"></i> <span>Fine Dining</span> </div> </div> <p class="description"> Romantic Parisian adventure with Eiffel Tower dinner, Seine River cruise, luxury hotel stay, and exclusive shopping experience. </p> <button class="cta-button"> <i class="fas fa-calendar-check"></i> Book Now </button> </div> </div> <!-- Slide 3 --> <div class="slide"> <div class="image-container"> <img src="https://images.unsplash.com/photo-1540959733332-eab4deabeeaf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1920&q=80" alt="Tokyo" class="travel-image"> <div class="floating-badge" style="background: #00b4d8;">Cultural</div> </div> <div class="content-container"> <span class="destination-tag">Asian Discovery</span> <h2 class="destination-name">Tokyo Experience</h2> <div class="rating"> <div class="stars"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> </div> <span class="rating-text">4.9 (156 reviews)</span> </div> <div class="price-container"> <div class="price">$4,199</div> <div class="price-label">per person</div> </div> <div class="destination-details"> <div class="detail-item"> <i class="fas fa-calendar-alt"></i> <span>10 Days / 9 Nights</span> </div> <div class="detail-item"> <i class="fas fa-users"></i> <span>Group Tour</span> </div> <div class="detail-item"> <i class="fas fa-train"></i> <span>Rail Pass</span> </div> </div> <p class="description"> Immerse yourself in Japanese culture with temple visits, sushi making classes, traditional ryokan stay, and bullet train travel. </p> <button class="cta-button"> <i class="fas fa-calendar-check"></i> Book Now </button> </div> </div> <!-- Slide 4 --> <div class="slide"> <div class="image-container"> <img src="https://images.unsplash.com/photo-1514282401047-d79a71a590e8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1920&q=80" alt="Maldives" class="travel-image"> <div class="floating-badge" style="background: #2ecc71;">Luxury</div> </div> <div class="content-container"> <span class="destination-tag">Island Luxury</span> <h2 class="destination-name">Maldives Retreat</h2> <div class="rating"> <div class="stars"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> </div> <span class="rating-text">4.8 (76 reviews)</span> </div> <div class="price-container"> <div class="price">$5,999</div> <div class="price-label">per person</div> </div> <div class="destination-details"> <div class="detail-item"> <i class="fas fa-calendar-alt"></i> <span>8 Days / 7 Nights</span> </div> <div class="detail-item"> <i class="fas fa-users"></i> <span>Private Villa</span> </div> <div class="detail-item"> <i class="fas fa-swimming-pool"></i> <span>Overwater Bungalow</span> </div> </div> <p class="description"> Ultimate luxury escape in overwater bungalows with private butler, spa treatments, water sports, and gourmet dining under the stars. </p> <button class="cta-button"> <i class="fas fa-calendar-check"></i> Book Now </button> </div> </div> </div> <div class="navigation-container"> <div class="nav-buttons"> <button class="nav-btn prev-btn"> <i class="fas fa-chevron-left"></i> </button> <button class="nav-btn next-btn"> <i class="fas fa-chevron-right"></i> </button> </div> <div class="progress-container"> <div class="progress-bar"> <div class="progress-fill"></div> </div> </div> <div class="slide-indicator"> <span id="currentSlide">1</span> / <span id="totalSlides">4</span> </div> </div> <div class="thumbnails-container"> <div class="thumbnail active" data-index="0"> <img src="https://images.unsplash.com/photo-1537996194471-e657df975ab4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80" alt="Bali"> <div class="thumbnail-overlay">Bali</div> </div> <div class="thumbnail" data-index="1"> <img src="https://images.unsplash.com/photo-1502602898657-3e91760cbb34?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80" alt="Paris"> <div class="thumbnail-overlay">Paris</div> </div> <div class="thumbnail" data-index="2"> <img src="https://images.unsplash.com/photo-1540959733332-eab4deabeeaf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80" alt="Tokyo"> <div class="thumbnail-overlay">Tokyo</div> </div> <div class="thumbnail" data-index="3"> <img src="https://images.unsplash.com/photo-1514282401047-d79a71a590e8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80" alt="Maldives"> <div class="thumbnail-overlay">Maldives</div> </div> </div> </div> </body> </html>
CSS
:root { --primary: #0066cc; --secondary: #ff6b35; --accent: #00b4d8; --light: #ffffff; --dark: #1a1a1a; --gray: #6c757d; --transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); --shadow: 0 15px 35px rgba(0, 0, 0, 0.1); --glass: rgba(255, 255, 255, 0.1); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: var(--dark); line-height: 1.6; min-height: 100vh; overflow-x: hidden; } .container { max-width: 1400px; margin: 0 auto; padding: 30px 20px; } /* Header */ .main-header { text-align: center; margin-bottom: 60px; animation: fadeInDown 0.8s ease forwards; } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } } .logo { font-family: 'Playfair Display', serif; font-size: 3.5rem; font-weight: 700; color: var(--light); margin-bottom: 15px; letter-spacing: 1px; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); } .tagline { font-size: 1.2rem; color: rgba(255, 255, 255, 0.9); letter-spacing: 2px; text-transform: uppercase; font-weight: 400; } /* Slider Container */ .slider-container { position: relative; height: 650px; border-radius: 25px; overflow: hidden; box-shadow: var(--shadow); margin-bottom: 40px; background: var(--light); } .slider { display: flex; height: 100%; position: relative; } .slide { min-width: 100%; height: 100%; position: absolute; top: 0; left: 0; opacity: 0; transform: translateX(80px); transition: var(--transition); z-index: 1; } .slide.active { opacity: 1; transform: translateX(0); z-index: 3; } .slide.prev { opacity: 0.3; transform: translateX(-80px); z-index: 1; } /* Image Container */ .image-container { position: absolute; top: 0; left: 0; width: 60%; height: 100%; overflow: hidden; } .travel-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; } .slide.active .travel-image { transform: scale(1.05); } /* Content Container */ .content-container { position: absolute; top: 0; right: 0; width: 40%; height: 100%; background: var(--light); padding: 60px; display: flex; flex-direction: column; justify-content: center; transform: translateX(30px); opacity: 0; transition: var(--transition); } .slide.active .content-container { transform: translateX(0); opacity: 1; transition-delay: 0.3s; } /* Content Elements */ .destination-tag { background: var(--primary); color: var(--light); padding: 12px 28px; border-radius: 30px; font-size: 0.9rem; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; display: inline-block; margin-bottom: 30px; align-self: flex-start; } .destination-name { font-family: 'Playfair Display', serif; font-size: 3rem; font-weight: 700; color: var(--dark); margin-bottom: 20px; line-height: 1.1; } .price-container { display: flex; align-items: baseline; gap: 15px; margin-bottom: 25px; } .price { font-size: 3.5rem; font-weight: 800; color: var(--secondary); line-height: 1; } .price-label { font-size: 1.1rem; color: var(--gray); font-weight: 500; } .destination-details { display: flex; gap: 25px; margin-bottom: 30px; flex-wrap: wrap; } .detail-item { display: flex; align-items: center; gap: 10px; font-size: 1.1rem; color: var(--gray); } .detail-item i { color: var(--primary); font-size: 1.3rem; width: 25px; } .description { color: var(--gray); font-size: 1.1rem; line-height: 1.7; margin-bottom: 40px; } .cta-button { background: var(--primary); color: var(--light); border: none; padding: 20px 50px; border-radius: 50px; font-size: 1.1rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: flex; align-items: center; justify-content: center; gap: 15px; align-self: flex-start; box-shadow: 0 10px 30px rgba(0, 102, 204, 0.3); } .cta-button:hover { background: var(--secondary); transform: translateY(-5px); box-shadow: 0 15px 40px rgba(255, 107, 53, 0.4); } /* Rating */ .rating { display: flex; align-items: center; gap: 10px; margin-bottom: 25px; } .stars { color: #ffc107; font-size: 1.2rem; } .rating-text { color: var(--gray); font-weight: 500; } /* Navigation */ .navigation-container { display: flex; justify-content: space-between; align-items: center; margin-top: 40px; } .nav-buttons { display: flex; gap: 15px; } .nav-btn { width: 70px; height: 70px; border-radius: 50%; background: var(--light); border: 2px solid rgba(0, 0, 0, 0.1); color: var(--primary); font-size: 1.3rem; cursor: pointer; transition: var(--transition); display: flex; align-items: center; justify-content: center; } .nav-btn:hover { background: var(--primary); color: var(--light); border-color: var(--primary); transform: scale(1.1); } /* Progress Indicator */ .progress-container { flex: 1; margin: 0 40px; } .progress-bar { width: 100%; height: 6px; background: rgba(0, 0, 0, 0.1); border-radius: 3px; overflow: hidden; } .progress-fill { height: 100%; width: 25%; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 3px; transition: width 0.4s ease; } .slide-indicator { font-size: 1.1rem; font-weight: 600; color: var(--light); min-width: 60px; text-align: center; background: var(--glass); padding: 12px 25px; border-radius: 30px; backdrop-filter: blur(10px); } /* Thumbnails */ .thumbnails-container { display: flex; justify-content: center; gap: 20px; margin-top: 40px; } .thumbnail { width: 120px; height: 80px; border-radius: 12px; overflow: hidden; cursor: pointer; opacity: 0.6; transition: var(--transition); position: relative; } .thumbnail:hover { opacity: 0.8; transform: translateY(-5px); } .thumbnail.active { opacity: 1; transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); } .thumbnail img { width: 100%; height: 100%; object-fit: cover; } .thumbnail-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.3); display: flex; align-items: center; justify-content: center; color: white; font-size: 0.9rem; font-weight: 600; } /* Floating Badge */ .floating-badge { position: absolute; top: 40px; left: 40px; background: var(--secondary); color: white; padding: 15px 30px; border-radius: 30px; font-weight: 600; font-size: 0.9rem; letter-spacing: 1.5px; text-transform: uppercase; z-index: 4; animation: float 6s ease-in-out infinite; box-shadow: 0 10px 25px rgba(255, 107, 53, 0.3); } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } /* Responsive Design - Pixel Perfect */ @media (max-width: 1200px) { .container { padding: 25px 15px; } .slider-container { height: 600px; } .destination-name { font-size: 2.5rem; } .price { font-size: 3rem; } .content-container { padding: 40px; } } @media (max-width: 992px) { .slider-container { height: 500px; } .image-container { width: 50%; } .content-container { width: 50%; padding: 30px; } .destination-name { font-size: 2.2rem; } .price { font-size: 2.5rem; } .description { font-size: 1rem; margin-bottom: 30px; } .cta-button { padding: 18px 40px; font-size: 1rem; } .floating-badge { top: 30px; left: 30px; padding: 12px 25px; } } @media (max-width: 768px) { .logo { font-size: 2.8rem; } .slider-container { height: auto; min-height: 600px; } .image-container { position: relative; width: 100%; height: 300px; } .content-container { position: relative; width: 100%; padding: 40px; transform: translateY(30px); } .destination-name { font-size: 2rem; } .price { font-size: 2.2rem; } .nav-btn { width: 60px; height: 60px; } .navigation-container { flex-wrap: wrap; gap: 25px; } .progress-container { order: 3; flex: 0 0 100%; margin: 0; } .thumbnails-container { flex-wrap: wrap; } .thumbnail { width: 100px; height: 70px; } } @media (max-width: 576px) { .container { padding: 20px 10px; } .logo { font-size: 2.2rem; } .tagline { font-size: 1rem; letter-spacing: 1px; } .slider-container { border-radius: 20px; } .image-container { height: 250px; } .content-container { padding: 30px; } .destination-name { font-size: 1.8rem; } .price { font-size: 1.8rem; } .destination-details { gap: 15px; } .detail-item { font-size: 1rem; } .description { font-size: 0.95rem; margin-bottom: 25px; } .cta-button { padding: 16px 35px; font-size: 0.95rem; width: 100%; justify-content: center; } .floating-badge { top: 20px; left: 20px; padding: 10px 20px; font-size: 0.8rem; } .thumbnail { width: 85px; height: 60px; } .nav-btn { width: 50px; height: 50px; font-size: 1.1rem; } } @media (max-width: 400px) { .logo { font-size: 1.8rem; } .image-container { height: 220px; } .content-container { padding: 25px; } .destination-name { font-size: 1.6rem; } .price { font-size: 1.6rem; } .destination-details { flex-direction: column; gap: 12px; } .thumbnail { width: 75px; height: 55px; } .thumbnails-container { gap: 15px; } } /* Ensure pixel perfection */ .content-container > * { margin-bottom: 0; } .content-container > *:not(:last-child) { margin-bottom: var(--spacing, 20px); } /* Smooth transitions */ .slide { transition-property: opacity, transform; transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Prevent layout shifts */ .slide-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
JavaScript
document.addEventListener('DOMContentLoaded', function() { // Elements const slides = document.querySelectorAll('.slide'); const thumbnails = document.querySelectorAll('.thumbnail'); const prevBtn = document.querySelector('.prev-btn'); const nextBtn = document.querySelector('.next-btn'); const progressFill = document.querySelector('.progress-fill'); const currentSlideSpan = document.getElementById('currentSlide'); const totalSlidesSpan = document.getElementById('totalSlides'); const ctaButtons = document.querySelectorAll('.cta-button'); // Variables let currentSlide = 0; const totalSlides = slides.length; let autoSlideInterval; const slideDuration = 8000; // 8 seconds // Initialize totalSlidesSpan.textContent = totalSlides; updateProgress(); // Function to update slide function updateSlide(index) { // Remove active class from all slides slides.forEach(slide => { slide.classList.remove('active', 'prev'); }); thumbnails.forEach(thumb => thumb.classList.remove('active')); // Calculate previous slide index let prevIndex = index - 1; if (prevIndex < 0) prevIndex = totalSlides - 1; // Add classes slides[index].classList.add('active'); slides[prevIndex].classList.add('prev'); thumbnails[index].classList.add('active'); // Update indicators currentSlide = index; currentSlideSpan.textContent = index + 1; updateProgress(); // Reset auto-slide timer resetAutoSlide(); } // Next slide function nextSlide() { const nextIndex = (currentSlide + 1) % totalSlides; updateSlide(nextIndex); } // Previous slide function prevSlide() { const prevIndex = (currentSlide - 1 + totalSlides) % totalSlides; updateSlide(prevIndex); } // Update progress bar function updateProgress() { const progress = ((currentSlide + 1) / totalSlides) * 100; progressFill.style.width = `${progress}%`; } // Auto-slide function startAutoSlide() { autoSlideInterval = setInterval(nextSlide, slideDuration); } function resetAutoSlide() { clearInterval(autoSlideInterval); startAutoSlide(); } // Event Listeners prevBtn.addEventListener('click', prevSlide); nextBtn.addEventListener('click', nextSlide); // Thumbnail click thumbnails.forEach(thumbnail => { thumbnail.addEventListener('click', function() { const index = parseInt(this.getAttribute('data-index')); updateSlide(index); }); }); // CTA Button click ctaButtons.forEach(button => { button.addEventListener('click', function() { const slide = this.closest('.slide'); const destinationName = slide.querySelector('.destination-name').textContent; const price = slide.querySelector('.price').textContent; // Animate button this.innerHTML = '<i class="fas fa-check"></i> Booking Requested'; this.style.background = '#2ecc71'; // Show confirmation setTimeout(() => { alert(`Thank you for your interest in ${destinationName}!\n\nOur travel concierge will contact you within 24 hours to complete your booking for $${price}.`); // Reset button after 3 seconds setTimeout(() => { this.innerHTML = '<i class="fas fa-calendar-check"></i> Book Now'; this.style.background = ''; }, 3000); }, 300); }); }); // Keyboard navigation document.addEventListener('keydown', function(e) { if (e.key === 'ArrowLeft') prevSlide(); if (e.key === 'ArrowRight') nextSlide(); }); // Touch swipe let touchStartX = 0; let touchEndX = 0; const sliderContainer = document.querySelector('.slider-container'); sliderContainer.addEventListener('touchstart', function(e) { touchStartX = e.changedTouches[0].screenX; }); sliderContainer.addEventListener('touchend', function(e) { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }); function handleSwipe() { const swipeThreshold = 50; if (touchStartX - touchEndX > swipeThreshold) { nextSlide(); } if (touchEndX - touchStartX > swipeThreshold) { prevSlide(); } } // Pause auto-slide on hover sliderContainer.addEventListener('mouseenter', function() { clearInterval(autoSlideInterval); }); sliderContainer.addEventListener('mouseleave', function() { startAutoSlide(); }); // Initialize auto-slide startAutoSlide(); });
Output Preview
Desktop
Mobile
Fullscreen