🌐
50 React Coding Puzzles
  • 50 React Coding Puzzles
  • Contact
  • Reviews
  • Table of Contents
  • Introduction
  • 1 - Simple Counter App
  • 2 - Dynamic List of Items with Strikethrough
  • 3 - Color Picker with Hex Code Display
  • 4 - Password Strength Checker
  • 5 - Countdown Timer with Audio
  • 6 - Dynamic Movie List with Filtering and Sorting
  • 7 - Text Animation Component (Fade/Scroll)
  • 8 - Dynamically Generated Text Art
  • 9 - Meme Generator with Custom Text
  • 10 - "What Should I Eat?" Random Recipe Generator
  • 11 - Simple Quiz App with Multiple Choice
  • 12 - Unit Converter
  • 13 - Dynamic Image Gallery with Lightbox
  • 14 - Weather Widget with Temperature and Description
  • 15 - Contact Form with Email and Message Validation
  • 16 - Color Palette Generator
  • 17 - Drag-and-Drop Feature for Rearranging Items
  • 18 - Interactive Quiz with Dynamic Results and Feedback
  • 19 - To-Do List with Task Categorization
  • 20 - Note-Taking App with Markdown Support
  • 21 - Simple Calculator with Basic Operations
  • 22 - Word Scramble Game with Timer and Score
  • 23 - Number Guessing Game
  • 24 - Digital Clock with Time Zone Support
  • 25 - Interactive Time Zone Converter
  • 26 - Weather Forecast App with Location Detection
  • 27 - Real-Time Stock Ticker with Updates
  • 28 - Virtual Dice Roller with Multiple Dice
  • 29 - Responsive Navigation Menu with Dropdowns
  • 30 - Progress Bar for Loading or Task Completion
  • 31 - Modal Window for Alerts and Confirmations
  • 32 - Infinite Scroll for Loading More Content
  • 33 - Form Validation with Error Messages
  • 34 - Search Bar with Filtering and Suggestions
  • 35 - Drag-and-Drop File Upload
  • 36 - Interactive Color Picker with Sliders
  • 37 - Image Carousel with Autoplay
  • 38 - Rating System with Stars or Thumbs Up/Down
  • 39 - Comment Section with Nested Replies
  • 40 - Pagination for Long Lists of Data
  • 41 - Stopwatch app that tracks elapsed time
  • 42 - Responsive E-commerce Product Grid
  • 43 - Random Movie/Book Recommender
  • 44 - Kanban board for managing tasks with drag-and-drop
  • 45 - Chat application with real-time messaging using WebSockets
  • 46 - Calendar that displays events and allows scheduling
  • 47 - Tic-Tac-Toe Game
  • 48 - Hangman Game
  • 49 - Notes App
  • 50 - Expense Tracker
  • Afterword
  • Appendix
Powered by GitBook
On this page
  • Description
  • Algorithm
  • Classes
  • Code
  • Explanation
  • Possible Future Enhancements

37 - Image Carousel with Autoplay

Description

Create an image carousel component that displays multiple images within a rotating carousel, automatically transitions between images at a specified interval, and provides controls for manual navigation.

Algorithm

  1. Create a React component for the image carousel

  2. Define the images array and the current image index

  3. Use the useState hook to manage the current image index

  4. Create a function to handle the autoplay functionality

  5. Create a function to handle the manual navigation controls

  6. Render the image carousel with the current image and navigation controls

Classes

  • ImageCarousel: The main image carousel component

  • ImageSlide: A single image slide component

  • NavigationControl: A navigation control component

Code

ImageCarousel.js

import React, { useState, useEffect } from 'react';
import ImageSlide from './ImageSlide';
import NavigationControl from './NavigationControl';

const ImageCarousel = () => {
  const [currentImage, setCurrentImage] = useState(0);
  const [images, setImages] = useState([
    { src: 'image1.jpg', alt: 'Image 1' },
    { src: 'image2.jpg', alt: 'Image 2' },
    { src: 'image3.jpg', alt: 'Image 3' },
  ]);

  useEffect(() => {
    const autoplay = () => {
      setCurrentImage((currentImage + 1) % images.length);
    };
    const intervalId = setInterval(autoplay, 5000);
    return () => clearInterval(intervalId);
  }, [currentImage, images]);

  const handleNavigation = (direction) => {
    setCurrentImage((currentImage + direction) % images.length);
  };

  return (
    <div>
      <ImageSlide image={images[currentImage]} />
      <NavigationControl
        onNext={() => handleNavigation(1)}
        onPrev={() => handleNavigation(-1)}
      />
    </div>
  );
};

export default ImageCarousel;

ImageSlide.js

import React from 'react';

const ImageSlide = ({ image }) => {
  return (
    <div>
      <img src={image.src} alt={image.alt} />
    </div>
  );
};

export default ImageSlide;

NavigationControl.js

import React from 'react';

const NavigationControl = ({ onNext, onPrev }) => {
  return (
    <div>
      <button onClick={onPrev}>Prev</button>
      <button onClick={onNext}>Next</button>
    </div>
  );
};

export default NavigationControl;

Explanation

The code creates an image carousel component that displays multiple images within a rotating carousel, automatically transitions between images at a specified interval, and provides controls for manual navigation. The component uses the useState hook to manage the current image index and the useEffect hook to handle the autoplay functionality. The component also defines a function to handle the manual navigation controls.

Possible Future Enhancements

  • Add support for more advanced autoplay options, such as pause on hover and autoplay delay

  • Add support for more advanced navigation controls, such as pagination and keyboard navigation

  • Add support for image captions and descriptions

  • Use a library like React Slick for more advanced image carousel functionality

Previous36 - Interactive Color Picker with SlidersNext38 - Rating System with Stars or Thumbs Up/Down

Last updated 10 months ago