FreshBazaar Grocery Mart 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>FreshBazaar | Premium Grocery Mart</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&family=Playfair+Display:wght@400;500;600;700&display=swap" rel="stylesheet"> </head> <body> <!-- Header --> <header> <div class="container header-container"> <div class="logo"> <i class="fas fa-shopping-basket logo-icon"></i> <h1>FreshBazaar</h1> </div> <div class="mobile-menu"> <i class="fas fa-bars"></i> </div> <nav> <ul> <li><a href="#home">Home</a></li> <li><a href="#categories">Categories</a></li> <li><a href="#products">Products</a></li> <li><a href="#offers">Offers</a></li> </ul> </nav> <div class="header-actions"> <div class="search-box"> <input type="text" placeholder="Search for products..."> <i class="fas fa-search"></i> </div> <div class="cart-icon"> <i class="fas fa-shopping-cart"></i> <span class="cart-count">3</span> </div> <button class="cta-button">Login</button> </div> </div> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="container"> <div class="hero-content"> <h2>Fresh Groceries Delivered to Your Doorstep</h2> <p>Experience the convenience of online grocery shopping with the freshest products at the best prices.</p> <div class="hero-buttons"> <button class="cta-button">Shop Now</button> <button class="secondary-button">Download App</button> </div> </div> </div> </section> <!-- Categories --> <section class="categories" id="categories"> <div class="container"> <div class="section-header"> <div class="section-title"> <h2>Shop by Category</h2> <p>Browse through our wide range of grocery categories</p> </div> </div> <div class="categories-grid"> <div class="category-card"> <div class="category-icon"> <i class="fas fa-wine-bottle"></i> </div> <h3>Beverages</h3> <p>Juices, soft drinks & more</p> </div> <div class="category-card"> <div class="category-icon"> <i class="fas fa-egg"></i> </div> <h3>Dairy & Eggs</h3> <p>Milk, cheese, yogurt & eggs</p> </div> <div class="category-card"> <div class="category-icon"> <i class="fas fa-bread-slice"></i> </div> <h3>Bakery</h3> <p>Bread, cakes & pastries</p> </div> <div class="category-card"> <div class="category-icon"> <i class="fas fa-drumstick-bite"></i> </div> <h3>Meat & Fish</h3> <p>Fresh meat & seafood</p> </div> <div class="category-card"> <div class="category-icon"> <i class="fas fa-mortar-pestle"></i> </div> <h3>Spices & Masalas</h3> <p>Authentic Indian spices</p> </div> </div> </div> </section> <!-- Featured Products --> <section class="featured-products" id="products"> <div class="container"> <div class="products-header"> <div class="section-title"> <h2>Featured Products</h2> <p>Fresh picks for your grocery basket</p> </div> <a href="#" class="view-all">View All Products <i class="fas fa-arrow-right"></i></a> </div> <div class="products-grid"> <div class="product-card"> <div class="product-image"> <img src="https://plus.unsplash.com/premium_photo-1661322640130-f6a1e2c36653?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8NXx8YXBwbGV8ZW58MHx8MHx8fDA%3D" alt="Fresh Apples"> <span class="product-badge">Fresh</span> </div> <div class="product-content"> <h3>Fresh Red Apples</h3> <div class="product-rating"> <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> <span>(128)</span> </div> <div class="product-price"> <span class="current-price">₹180/kg</span> <span class="original-price">₹220/kg</span> <span class="discount">18% off</span> </div> <button class="add-to-cart">Add to Cart</button> </div> </div> <div class="product-card"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1602153508753-4ace888c10a0?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Nnx8bWlsa3xlbnwwfHwwfHx8MA%3D%3D" alt="Organic Milk"> <span class="product-badge">Organic</span> </div> <div class="product-content"> <h3>Organic Cow Milk</h3> <div class="product-rating"> <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="far fa-star"></i> <span>(95)</span> </div> <div class="product-price"> <span class="current-price">₹60/L</span> <span class="original-price">₹70/L</span> <span class="discount">14% off</span> </div> <button class="add-to-cart">Add to Cart</button> </div> </div> <div class="product-card"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1523294587484-bae6cc870010?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MTZ8fGJyZWFkfGVufDB8fDB8fHww" alt="Whole Wheat Bread"> <span class="product-badge">Bestseller</span> </div> <div class="product-content"> <h3>Whole Wheat Bread</h3> <div class="product-rating"> <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> <span>(210)</span> </div> <div class="product-price"> <span class="current-price">₹45</span> <span class="original-price">₹55</span> <span class="discount">18% off</span> </div> <button class="add-to-cart">Add to Cart</button> </div> </div> <div class="product-card"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1586201375761-83865001e31c?ixlib=rb-4.0.3&auto=format&fit=crop&w=500&q=80" alt="Basmati Rice"> <span class="product-badge">Premium</span> </div> <div class="product-content"> <h3>Premium Basmati Rice</h3> <div class="product-rating"> <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> <span>(156)</span> </div> <div class="product-price"> <span class="current-price">₹120/kg</span> <span class="original-price">₹150/kg</span> <span class="discount">20% off</span> </div> <button class="add-to-cart">Add to Cart</button> </div> </div> </div> </div> </section> <!-- Offers Banner --> <section class="offers" id="offers"> <div class="container"> <h2>Grand Festival Sale</h2> <p>Upto 50% off on all grocery items. Limited time offer!</p> <div class="timer"> <div class="timer-item"> <div class="timer-number">02</div> <div class="timer-label">Days</div> </div> <div class="timer-item"> <div class="timer-number">12</div> <div class="timer-label">Hours</div> </div> <div class="timer-item"> <div class="timer-number">45</div> <div class="timer-label">Minutes</div> </div> <div class="timer-item"> <div class="timer-number">30</div> <div class="timer-label">Seconds</div> </div> </div> <button class="cta-button">Shop the Sale</button> </div> </section> <!-- Why Choose Us --> <section class="why-choose"> <div class="container"> <div class="section-header"> <div class="section-title"> <h2>Why Choose FreshBazaar?</h2> <p>We're committed to providing the best grocery shopping experience</p> </div> </div> <div class="features-grid"> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-truck"></i> </div> <h3>Free Delivery</h3> <p>Free delivery on orders above ₹499</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-leaf"></i> </div> <h3>Fresh Guarantee</h3> <p>100% fresh and quality products</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-shield-alt"></i> </div> <h3>Safe Packaging</h3> <p>Hygienic and secure packaging</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-headset"></i> </div> <h3>24/7 Support</h3> <p>Round-the-clock customer support</p> </div> </div> </div> </section> <!-- Testimonials --> <section class="testimonials" id="testimonials"> <div class="container"> <div class="section-header"> <div class="section-title"> <h2>What Our Customers Say</h2> <p>Read genuine reviews from our happy customers</p> </div> </div> <div class="testimonials-container"> <div class="testimonial-card"> <div class="testimonial-text"> "FreshBazaar has transformed my grocery shopping experience. The quality of products is exceptional and delivery is always on time. Highly recommended!" </div> <div class="testimonial-author"> <div class="testimonial-avatar"> <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Customer"> </div> <div class="author-info"> <h4>Priya Sharma</h4> <p>Regular Customer</p> </div> </div> </div> <div class="testimonial-card"> <div class="testimonial-text"> "As a working professional, I don't have time for grocery shopping. FreshBazaar has been a lifesaver with their fresh produce and timely deliveries." </div> <div class="testimonial-author"> <div class="testimonial-avatar"> <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Customer"> </div> <div class="author-info"> <h4>Rahul Verma</h4> <p>IT Professional</p> </div> </div> </div> <div class="testimonial-card"> <div class="testimonial-text"> "The fruits and vegetables from FreshBazaar are always fresh and of premium quality. Their customer service is excellent too!" </div> <div class="testimonial-author"> <div class="testimonial-avatar"> <img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Customer"> </div> <div class="author-info"> <h4>Anita Patel</h4> <p>Home Chef</p> </div> </div> </div> </div> </div> </section> <!-- Footer --> <footer> <div class="container"> <div class="footer-content"> <div class="footer-column"> <h3>FreshBazaar</h3> <p>Your one-stop destination for fresh groceries delivered to your doorstep.</p> <div class="social-links"> <a href="#"><i class="fab fa-facebook-f"></i></a> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-youtube"></i></a> </div> </div> <div class="footer-column"> <h3>Quick Links</h3> <ul> <li><a href="#home">Home</a></li> <li><a href="#categories">Categories</a></li> <li><a href="#products">Products</a></li> <li><a href="#offers">Offers</a></li> <li><a href="#testimonials">Testimonials</a></li> </ul> </div> <div class="footer-column"> <h3>Customer Service</h3> <ul> <li><a href="#">My Account</a></li> <li><a href="#">Track Order</a></li> <li><a href="#">Returns & Refunds</a></li> <li><a href="#">Shipping Policy</a></li> <li><a href="#">FAQ</a></li> </ul> </div> <div class="footer-column"> <h3>Contact Us</h3> <ul> <li><i class="fas fa-map-marker-alt"></i> 123 Grocery Street, Mumbai, India</li> <li><i class="fas fa-phone"></i> +91 98765 43210</li> <li><i class="fas fa-envelope"></i> info@freshbazaar.com</li> <li><i class="fas fa-clock"></i> Mon-Sun: 7:00 AM - 11:00 PM</li> </ul> </div> </div> <div class="copyright"> <p>© 2023 FreshBazaar. All Rights Reserved.</p> </div> </div> </footer> </body> </html>
CSS
:root { --primary: #4caf50; /* Fresh green */ --secondary: #ff9800; /* Vibrant orange */ --accent: #e91e63; /* Pink accent */ --dark: #2e7d32; /* Deep green */ --light: #f1f8e9; /* Light green background */ --text: #1b5e20; --shadow: 0 5px 15px rgba(0, 0, 0, 0.1); --card-bg: #ffffff; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Montserrat', sans-serif; line-height: 1.7; color: var(--text); background-color: var(--light); overflow-x: hidden; } h1, h2, h3, h4, h5 { font-family: 'Playfair Display', serif; font-weight: 600; color: var(--dark); } .container { width: 90%; max-width: 1400px; margin: 0 auto; padding: 0 20px; } /* Header Styles */ header { background-color: rgba(255, 255, 255, 0.95); box-shadow: var(--shadow); position: fixed; width: 100%; top: 0; z-index: 1000; transition: all 0.4s ease; } .header-container { display: flex; justify-content: space-between; align-items: center; padding: 15px 0; } .logo { display: flex; align-items: center; } .logo h1 { font-size: 28px; color: var(--primary); margin-left: 10px; letter-spacing: 1px; } .logo-icon { color: var(--secondary); font-size: 32px; } nav ul { display: flex; list-style: none; } nav ul li { margin-left: 25px; position: relative; } nav ul li a { text-decoration: none; color: var(--dark); font-weight: 500; transition: color 0.3s ease; position: relative; padding: 5px 0; } nav ul li a:hover { color: var(--primary); } nav ul li a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background-color: var(--primary); transition: width 0.3s ease; } nav ul li a:hover::after { width: 100%; } .header-actions { display: flex; align-items: center; gap: 20px; } .search-box { display: flex; background: #f5f5f5; border-radius: 30px; padding: 8px 15px; width: 250px; } .search-box input { border: none; background: transparent; outline: none; width: 100%; font-family: 'Montserrat', sans-serif; } .search-box i { color: var(--dark); } .cart-icon { position: relative; font-size: 22px; color: var(--dark); cursor: pointer; } .cart-count { position: absolute; top: -8px; right: -8px; background: var(--accent); color: white; border-radius: 50%; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; } .cta-button { background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; border: none; padding: 10px 25px; border-radius: 30px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3); } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(76, 175, 80, 0.4); } .mobile-menu { display: none; font-size: 24px; cursor: pointer; color: var(--dark); } /* Hero Section */ .hero { padding: 150px 0 80px; background: linear-gradient(135deg, rgba(46, 125, 50, 0.8), rgba(255, 152, 0, 0.3)), url('https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=80') no-repeat center center/cover; color: white; position: relative; overflow: hidden; } .hero-content { max-width: 600px; animation: fadeInUp 1.2s ease; } .hero h2 { font-size: 48px; margin-bottom: 20px; color: white; line-height: 1.2; } .hero p { font-size: 18px; margin-bottom: 30px; opacity: 0.9; } .hero-buttons { display: flex; gap: 15px; } .secondary-button { background: transparent; color: white; border: 2px solid white; padding: 10px 25px; border-radius: 30px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; } .secondary-button:hover { background: white; color: var(--dark); } /* Categories */ .categories { padding: 80px 0; background-color: var(--card-bg); } .section-header { text-align: center; margin-bottom: 50px; } .section-title { position: relative; display: inline-block; margin-bottom: 15px; } .section-title h2 { font-size: 36px; margin-bottom: 10px; } .section-title p { color: #666; max-width: 600px; margin: 0 auto; } .section-title::after { content: ''; position: absolute; width: 80px; height: 3px; background: var(--primary); bottom: -10px; left: 50%; transform: translateX(-50%); } .categories-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 25px; } .category-card { background: var(--card-bg); border-radius: 10px; padding: 25px 20px; text-align: center; box-shadow: var(--shadow); transition: all 0.3s ease; cursor: pointer; border: 2px solid transparent; } .category-card:hover { transform: translateY(-10px); border-color: var(--primary); } .category-icon { width: 70px; height: 70px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--secondary)); display: flex; align-items: center; justify-content: center; margin: 0 auto 15px; color: white; font-size: 28px; } .category-card h3 { font-size: 18px; margin-bottom: 5px; } /* Featured Products */ .featured-products { padding: 80px 0; background-color: var(--light); } .products-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 40px; } .view-all { color: var(--primary); text-decoration: none; font-weight: 600; display: flex; align-items: center; gap: 5px; transition: all 0.3s ease; } .view-all:hover { gap: 10px; } .products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 25px; } .product-card { background: var(--card-bg); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); transition: all 0.3s ease; position: relative; } .product-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15); } .product-image { height: 200px; overflow: hidden; position: relative; } .product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .product-card:hover .product-image img { transform: scale(1.1); } .product-badge { position: absolute; top: 15px; left: 15px; background: var(--accent); color: white; padding: 5px 10px; border-radius: 20px; font-size: 12px; font-weight: 600; } .product-content { padding: 20px; } .product-content h3 { font-size: 18px; margin-bottom: 10px; } .product-rating { color: var(--secondary); margin-bottom: 10px; font-size: 14px; } .product-price { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; } .current-price { font-size: 20px; font-weight: 700; color: var(--primary); } .original-price { font-size: 16px; color: #999; text-decoration: line-through; } .discount { color: var(--accent); font-weight: 600; font-size: 14px; } .add-to-cart { width: 100%; background: var(--primary); color: white; border: none; padding: 10px; border-radius: 5px; font-weight: 600; cursor: pointer; transition: background 0.3s ease; } .add-to-cart:hover { background: var(--dark); } /* Offers Banner */ .offers { padding: 80px 0; background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; text-align: center; } .offers h2 { color: white; font-size: 36px; margin-bottom: 20px; } .offers p { max-width: 600px; margin: 0 auto 30px; font-size: 18px; } .timer { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; } .timer-item { background: rgba(255, 255, 255, 0.2); padding: 15px; border-radius: 10px; min-width: 80px; } .timer-number { font-size: 32px; font-weight: 700; margin-bottom: 5px; } .timer-label { font-size: 14px; opacity: 0.9; } /* Why Choose Us */ .why-choose { padding: 80px 0; background-color: var(--card-bg); } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; } .feature-card { text-align: center; padding: 30px 20px; } .feature-icon { width: 80px; height: 80px; border-radius: 50%; background: var(--light); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: var(--primary); font-size: 32px; } .feature-card h3 { margin-bottom: 15px; } /* Testimonials */ .testimonials { padding: 80px 0; background-color: var(--light); } .testimonials-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; } .testimonial-card { background: var(--card-bg); border-radius: 10px; padding: 30px; box-shadow: var(--shadow); transition: transform 0.3s ease; } .testimonial-card:hover { transform: translateY(-10px); } .testimonial-text { font-style: italic; margin-bottom: 20px; position: relative; } .testimonial-text::before { content: """; font-size: 60px; color: var(--primary); position: absolute; top: -30px; left: -10px; opacity: 0.2; font-family: serif; } .testimonial-author { display: flex; align-items: center; gap: 15px; } .testimonial-avatar { width: 50px; height: 50px; border-radius: 50%; overflow: hidden; } .testimonial-avatar img { width: 100%; height: 100%; object-fit: cover; } .author-info h4 { color: var(--dark); margin-bottom: 5px; } /* Footer */ footer { background: var(--dark); color: white; padding: 60px 0 20px; } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; margin-bottom: 40px; } .footer-column h3 { color: var(--secondary); margin-bottom: 20px; font-size: 20px; } .footer-column ul { list-style: none; } .footer-column ul li { margin-bottom: 10px; } .footer-column ul li a { color: #ccc; text-decoration: none; transition: color 0.3s ease; } .footer-column ul li a:hover { color: var(--secondary); } .social-links { display: flex; margin-top: 20px; gap: 10px; } .social-links a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); color: white; transition: background 0.3s ease; } .social-links a:hover { background: var(--primary); } .app-download { margin-top: 20px; } .app-download img { height: 40px; margin-right: 10px; border-radius: 5px; } .copyright { text-align: center; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 14px; color: #aaa; } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } /* Responsive Styles */ @media (max-width: 992px) { .hero h2 { font-size: 36px; } .header-actions { gap: 15px; } .search-box { width: 200px; } } @media (max-width: 768px) { .mobile-menu { display: block; } nav ul { position: fixed; top: 80px; left: -100%; width: 100%; height: calc(100vh - 80px); background: white; flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 50px; transition: left 0.3s ease; box-shadow: var(--shadow); } nav ul.active { left: 0; } nav ul li { margin: 15px 0; } .header-actions { display: none; } .hero-buttons { flex-direction: column; gap: 15px; } .products-header { flex-direction: column; align-items: flex-start; gap: 20px; } } @media (max-width: 576px) { .hero { padding: 130px 0 60px; } .hero h2 { font-size: 28px; } .section-title h2 { font-size: 28px; } .categories-grid { grid-template-columns: repeat(2, 1fr); } .products-grid { grid-template-columns: 1fr; } .timer { gap: 10px; } .timer-item { min-width: 60px; padding: 10px; } .timer-number { font-size: 24px; } }
JavaScript
// Mobile Menu Toggle document.querySelector('.mobile-menu').addEventListener('click', function() { document.querySelector('nav ul').classList.toggle('active'); }); // Header scroll effect window.addEventListener('scroll', function() { const header = document.querySelector('header'); if (window.scrollY > 100) { header.style.background = 'rgba(255, 255, 255, 0.98)'; header.style.boxShadow = '0 5px 20px rgba(0, 0, 0, 0.1)'; } else { header.style.background = 'rgba(255, 255, 255, 0.95)'; header.style.boxShadow = '0 2px 15px rgba(0, 0, 0, 0.1)'; } }); // Add to cart functionality const addToCartButtons = document.querySelectorAll('.add-to-cart'); const cartCount = document.querySelector('.cart-count'); let count = 3; // Initial cart count addToCartButtons.forEach(button => { button.addEventListener('click', function() { count++; cartCount.textContent = count; // Animation effect this.textContent = 'Added!'; this.style.background = 'var(--secondary)'; setTimeout(() => { this.textContent = 'Add to Cart'; this.style.background = 'var(--primary)'; }, 1000); }); }); // Countdown timer function updateTimer() { const daysElement = document.querySelector('.timer-number:nth-child(1)'); const hoursElement = document.querySelector('.timer-number:nth-child(2)'); const minutesElement = document.querySelector('.timer-number:nth-child(3)'); const secondsElement = document.querySelector('.timer-number:nth-child(4)'); // Set your target date here (2 days from now) const targetDate = new Date(); targetDate.setDate(targetDate.getDate() + 2); const now = new Date().getTime(); const distance = targetDate - now; const days = Math.floor(distance / (1000 * 60 * 60 * 24)); const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((distance % (1000 * 60)) / 1000); daysElement.textContent = days.toString().padStart(2, '0'); hoursElement.textContent = hours.toString().padStart(2, '0'); minutesElement.textContent = minutes.toString().padStart(2, '0'); secondsElement.textContent = seconds.toString().padStart(2, '0'); } // Update the timer every second setInterval(updateTimer, 1000); updateTimer(); // Initial call // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); // Close mobile menu if open document.querySelector('nav ul').classList.remove('active'); } }); }); // Animation on scroll const animateOnScroll = function() { const elements = document.querySelectorAll('.product-card, .testimonial-card, .category-card'); elements.forEach(element => { const elementPosition = element.getBoundingClientRect().top; const screenPosition = window.innerHeight / 1.3; if (elementPosition < screenPosition) { element.style.opacity = '1'; element.style.transform = 'translateY(0)'; } }); }; // Set initial state for animated elements window.addEventListener('DOMContentLoaded', function() { const elements = document.querySelectorAll('.product-card, .testimonial-card, .category-card'); elements.forEach(element => { element.style.opacity = '0'; element.style.transform = 'translateY(30px)'; element.style.transition = 'opacity 0.5s ease, transform 0.5s ease'; }); // Trigger initial animation check animateOnScroll(); }); // Listen for scroll events window.addEventListener('scroll', animateOnScroll);
Output Preview
Desktop
Mobile
Fullscreen