JavaScript_Projects

๐Ÿš€ JavaScript Projects Collection

A comprehensive collection of JavaScript projects covering fundamental to advanced concepts

โœจ Overview

JavaScript Projects Collection is a curated repository of 25+ practical JavaScript projects designed to help developers master modern JavaScript concepts through hands-on practice. Each project focuses on specific programming concepts, from DOM manipulation to game development and advanced animations.

๐ŸŽฏ Key Features

๐ŸŽฏ Learning Path

๐ŸŸข Beginner Level

Start with these foundational projects:

  1. random-background-color - Basic DOM manipulation
  2. increase-numbers-on-scroll - Event handling basics
  3. create-tabs - State management fundamentals

๐ŸŸก Intermediate Level

Advance to these interactive projects:

  1. drag-drop-sortable-list - Complex user interactions
  2. our-work-filter - Data manipulation and filtering
  3. custom-select-menu - Custom UI components

๐Ÿ”ด Advanced Level

Challenge yourself with these complex projects:

  1. flappy-bird-game - Game development with Canvas
  2. multi-languages-site - Advanced state management
  3. professional-portfolio-gallery - Full-stack concepts

๐Ÿ—๏ธ Project Structure

JavaScript_Projects/
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ Animations-Effects/          # Interactive animations and visual effects
โ”‚   โ”œโ”€โ”€ animate-width-on-scroll/    # Progress bar animation on scroll
โ”‚   โ”œโ”€โ”€ flashlight-effect/          # Mouse-following spotlight effect
โ”‚   โ”œโ”€โ”€ follows-mouse-cursor/       # Element following cursor movement
โ”‚   โ””โ”€โ”€ increase-numbers-on-scroll/ # Animated counters on scroll
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ Dom-Features/                # Advanced DOM manipulation
โ”‚   โ”œโ”€โ”€ create-countdown-timer/     # Customizable countdown timer
โ”‚   โ”œโ”€โ”€ drag-drop-sortable-list/    # Sortable list with drag & drop
โ”‚   โ”œโ”€โ”€ drag-drop-sortable-list-basic/ # Basic drag & drop implementation
โ”‚   โ”œโ”€โ”€ our-work-filter/            # Dynamic content filtering system
โ”‚   โ””โ”€โ”€ professional-portfolio-gallery/ # Portfolio image gallery
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ Game/                        # JavaScript game development
โ”‚   โ”œโ”€โ”€ flappy-bird-game/           # Complete Flappy Bird clone
โ”‚   โ””โ”€โ”€ subway-game/                # Subway Surfers inspired game
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ Javascript-Logic/            # Core JavaScript algorithms
โ”‚   โ”œโ”€โ”€ detect-adblock/             # Ad-blocker detection system
โ”‚   โ”œโ”€โ”€ detect-user-browser/        # Browser detection utility
โ”‚   โ”œโ”€โ”€ random-background-color/    # Random color generator
โ”‚   โ””โ”€โ”€ random-element-from-sequence/ # Random element selector
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ localization/                # Internationalization
โ”‚   โ”œโ”€โ”€ dark-mode-with-localization/ # Dark mode + multi-language
โ”‚   โ”œโ”€โ”€ multi-languages-site/       # Multi-language website implementation
โ”‚   โ””โ”€โ”€ multi-language-website/     # Alternative multi-language approach
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ UI-Components/               # Reusable UI components
โ”‚   โ”œโ”€โ”€ create-card-slider/         # Card slider with navigation
โ”‚   โ”œโ”€โ”€ create-image-slider/        # Full-featured image slider
โ”‚   โ”œโ”€โ”€ create-tabs/                # Dynamic tab system
โ”‚   โ”œโ”€โ”€ custom-select-menu/         # Custom dropdown menu
โ”‚   โ””โ”€โ”€ fullscreen-navigation/      # Fullscreen navigation menu
โ”‚
โ””โ”€โ”€ ๐Ÿ“œ README.md                    # This documentation

๐Ÿš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/Maher-Elmair/JavaScript_Projects.git

# Navigate to the project directory
cd JavaScript_Projects

# Open any project folder
cd UI-Components/create-image-slider/

# Open index.html in your browser
# Or use VS Code Live Server extension

Alternative: Using Live Server (VS Code)

  1. Install โ€œLive Serverโ€ extension in VS Code
  2. Right-click on any index.html file
  3. Select โ€œOpen with Live Serverโ€
  4. Project will open in your default browser

๐Ÿ› ๏ธ Technologies

Core Technologies

Technology Primary Use Key Features & Capabilities
JavaScript
JavaScript (ES6+)
Core programming & logic Arrow functions, Promises, Async/Await, Modules, DOM Manipulation, Event Handling
HTML5
HTML5
Structure & semantics Semantic elements, Accessibility features, Canvas API, Forms validation, Media elements
CSS3
CSS3
Styling & layout Flexbox, CSS Grid, Animations & Transitions, CSS Variables, Media Queries, Responsive design
Browser APIs
Browser APIs
Extended functionality DOM API, Canvas API, LocalStorage, SessionStorage, Geolocation, Drag & Drop, Fetch API
Git
Git
Version control Branch management, Collaboration, Commit history, Merging, Staging
GitHub
GitHub
Code hosting & collaboration Pull requests, Issues, GitHub Pages, Project management, Code review
VS Code
VS Code
Development environment Live Server extension, Debugging tools, IntelliSense, Extensions ecosystem, Integrated terminal

Key APIs & Features

All projects are hosted on GitHub Pages and can be previewed online. Each project includes a live demo link, detailed description, and skills learned.

๐ŸŽญ Animations & Effects Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | animate-width-on-scroll | Progress bar animation on scroll | Intersection Observer, CSS Transitions | View Demo | View Code | | flashlight-effect | Mouse-following spotlight effect | Mouse Events, CSS Gradients | View Demo | View Code | | follows-mouse-cursor | Element that follows cursor movement | Event Listeners, Positioning | View Demo | View Code | | increase-numbers-on-scroll | Animated number counters | Scroll Events, Animation Timing | View Demo | View Code |

๐Ÿ—๏ธ DOM Features Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | create-countdown-timer | Customizable countdown timer | Date API, setInterval | View Demo | View Code | | drag-drop-sortable-list | Sortable list with drag & drop | Drag & Drop API, Local Storage | View Demo | View Code | | drag-drop-sortable-list-basic | Basic drag & drop implementation | Event Handling, DOM Manipulation | View Demo | View Code | | our-work-filter | Dynamic content filtering | Filter Methods, State Management | View Demo | View Code | | professional-portfolio-gallery | Portfolio image gallery | Lightbox, Modal Systems | View Demo | View Code |

๐ŸŽฎ Game Development Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | flappy-bird-game | Full Flappy Bird game clone | Canvas API, Game Physics, Collision Detection | View Demo | View Code | | subway-game | Subway Surfers inspired game | Sprite Animation, Score Systems | View Demo | View Code |

๐Ÿง  JavaScript Logic Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | detect-adblock | Ad-blocker detection | Network Requests, Error Handling | View Demo | View Code | | detect-user-browser | Browser detection system | Navigator API, User Agent Parsing | View Demo | View Code | | random-background-color | Random color generator | Math.random, RGB/HSL Colors | View Demo | View Code | | random-element-from-sequence | Random element selector | Arrays, Probability | View Demo | View Code |

๐ŸŒ Localization Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | dark-mode-with-localization | Dark mode with multi-language | Local Storage, Theme Switching | View Demo | View Code | | multi-languages-site | Multi-language website | JSON Data, DOM Updates | View Demo | View Code | | multi-language-website | Alternative multi-language site | Language Switching, Content Management | View Demo | View Code |

๐Ÿงฉ UI Components Projects

| Project | Description | Skills Learned | Live Demo | Code Preview | |โ€”โ€”โ€”|โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€”โ€”-|โ€”โ€”โ€”โ€“|โ€”โ€”โ€”โ€”โ€“| | create-card-slider | Card slider with navigation | Swipe Events, CSS Transforms | View Demo | View Code | | create-image-slider | Full-featured image slider | Image Preloading, Navigation Controls | View Demo | View Code | | create-tabs | Dynamic tab system | Event Delegation, Content Switching | View Demo | View Code | | custom-select-menu | Custom dropdown menu | Accessibility, Dropdown Logic | View Demo | View Code | | fullscreen-navigation | Fullscreen navigation menu | CSS Animations, Responsive Design | View Demo | View Code |

๐Ÿ“ˆ Learning Outcomes

Technical Skills

Soft Skills

๐Ÿ‘จโ€๐Ÿ’ป Connect With Me

### **Maher Elmair** *Frontend Developer & JavaScript Enthusiast* ### ๐Ÿ“ Professional Links
Gmail
Email
LinkedIn
LinkedIn
Twitter
X (Twitter)
Portfolio
Portfolio
GitHub
GitHub Profile

๐Ÿค Contributing

We welcome contributions from developers of all skill levels! Hereโ€™s how you can help:

Ways to Contribute

  1. Add New Projects: Implement new JavaScript concepts
  2. Improve Documentation: Enhance existing documentation
  3. Fix Bugs: Identify and fix issues in current projects
  4. Optimize Code: Improve performance and readability
  5. Add Features: Extend functionality of existing projects

### โญ Star this repository if you found it helpful! **Happy Coding!** ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿš€