DeveloperBreeze

JavaScript Image Gallery with Lightbox

<!DOCTYPE html>
<html lang=en>
<head>
    <meta charset=UTF-8>
    <meta name=viewport content="width=device-width, initial-scale=1.0">
    <title>Image Gallery with Lightbox</title>
    <style>
        .gallery {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: center;
        }
        .gallery img {
            width: 150px;
            height: auto;
            cursor: pointer;
            transition: transform 0.3s ease;
        }
        .gallery img:hover {
            transform: scale(1.05);
        }
        .lightbox {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.8);
            justify-content: center;
            align-items: center;
        }
        .lightbox img {
            max-width: 90%;
            max-height: 90%;
        }
    </style>
</head>
<body>
    <div class=gallery>
        <img src=https://via.placeholder.com/300x200 alt="Image 1" onclick=openLightbox(this)>
        <img src=https://via.placeholder.com/300x200 alt="Image 2" onclick=openLightbox(this)>
        <img src=https://via.placeholder.com/300x200 alt="Image 3" onclick=openLightbox(this)>
        <img src=https://via.placeholder.com/300x200 alt="Image 4" onclick=openLightbox(this)>
    </div>

    <div class=lightbox id=lightbox onclick=closeLightbox()>
        <img src alt="Lightbox Image" id=lightboxImage>
    </div>

    <script>
        function openLightbox(image) {
            const lightbox = document.getElementById('lightbox');
            const lightboxImage = document.getElementById('lightboxImage');
            lightboxImage.src = image.src;
            lightbox.style.display = 'flex';
        }

        function closeLightbox() {
            const lightbox = document.getElementById('lightbox');
            lightbox.style.display = 'none';
        }
    </script>
</body>
</html>

Explanation

    • HTML Structure: The gallery is composed of image elements wrapped in a container. Each image has an onclick event that triggers the lightbox.

    • CSS Styling:

- The gallery is styled with flexbox to arrange images in a responsive grid.

- The lightbox is a full-screen overlay with a semi-transparent background. It centers the selected image using flexbox.

    • JavaScript Functionality:

- openLightbox(image): This function displays the lightbox and sets the source of the large image to the clicked thumbnail.

- closeLightbox(): This function hides the lightbox when the overlay is clicked.

Usage

  • Web Galleries: Implement this snippet on any webpage to enhance image viewing experiences.

  • Responsive Design: Easily adjust CSS to fit different screen sizes and orientations.

  • Customization: Extend functionality by adding image captions, navigation arrows, or animations.

This snippet demonstrates how to create an elegant and interactive image gallery with a lightbox effect, providing a useful tool for web developers aiming to improve user engagement on their websites.

Continue Reading

Discover more amazing content handpicked just for you

Cheatsheet

Best Tools for Generating Backgrounds Patterns for Your Website

If you're looking to add some style to your website with custom-generated patterns, you're in luck! Here’s a list of fantastic tools that can help you create modern, visually appealing backgrounds and patterns with ease. From subtle designs to bold statement patterns, these tools offer flexibility and customization to match your creative needs.

  • Website: Patternico
  • Features:
  • Create seamless repeating patterns.
  • Upload your own icons, or use predefined shapes.
  • Customize size, spacing, and background colors.
  • Download in high-resolution PNG or SVG formats.
  • Best For: Quick and easy custom patterns with a minimal learning curve.

Oct 21, 2024
Read More
Tutorial
javascript

Creating a Dropdown Menu with JavaScript

To follow along with this tutorial, you should have a basic understanding of HTML, CSS, and JavaScript. Familiarity with DOM manipulation in JavaScript will be helpful but isn’t required.

The first step in creating a dropdown menu is to build the basic HTML structure. We’ll create a navigation bar with a dropdown menu that is initially hidden.

Sep 02, 2024
Read More
Features 1
Tailwind Component
css html

Features 1

No preview available for this content.

Aug 05, 2024
Read More
Tutorial
css html

CSS Grid and Flexbox: Mastering Modern Layouts

<div class="grid-container">
  <div class="grid-item flex-container">
    <div class="flex-item">A</div>
    <div class="flex-item">B</div>
  </div>
  <div class="grid-item">C</div>
</div>
.grid-container {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px;
}

.flex-container {
  display: flex;
  justify-content: space-between;
}

Aug 03, 2024
Read More
Note
javascript css +1

Automatically add Tailwind CSS and jQuery classes to any table

  • px-6 py-3: Padding.
  • text-left text-xs font-medium text-gray-500 uppercase tracking-wider: Header text styling.
  • border-b border-gray-200: Bottom border.
  • bg-white divide-y divide-gray-200: White background and row separators.

Aug 03, 2024
Read More

Discussion 0

Please sign in to join the discussion.

No comments yet. Start the discussion!