Angular Bootstrap LightBox
Angular lightbox - Bootstrap 4 & Material Design
Angular Bootstrap lightbox is a group of images combined in one responsive gallery. Elements are grouped in thumbnail grid, which can be displayed as a slideshow.
Basic example MDB Pro component
<div class="row">
<mdb-image-modal [modalImages]="imagesBasic" type="no-margin"></mdb-image-modal>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'basic-lightbox',
templateUrl: './basic-lightbox.component.html',
styleUrls: ['./basic-lightbox.component.scss'],
})
export class BasicLightboxComponent {
imagesBasic = [
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(117).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(117).jpg", description: "Image 1" },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(98).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(98).jpg", description: "Image 2" },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(131).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(131).jpg", description: "Image 3" },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(123).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(123).jpg", description: "Image 4" },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(118).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(118).jpg", description: 'Image 5' },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(128).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(128).jpg", description: 'Image 6' },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(132).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(132).jpg", description: 'Image 7' },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(115).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(115).jpg", description: 'Image 8' },
{ img: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(133).jpg", thumb: "https://mdbootstrap.com/img/Photos/Horizontal/Nature/12-col/img%20(133).jpg", description: 'Image 9' }
];
}
Gallery with margins MDB Pro component
Add type="margin"
class to add a margins to your images.
<div class="row">
<mdb-image-modal [modalImages]="images" type="margin"></mdb-image-modal>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'margin-lightbox',
templateUrl: './margin-lightbox.component.html',
styleUrls: ['./margin-lightbox.component.scss'],
})
export class MarginLightboxComponent {
images = [
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(145).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(145).jpg", description: "Image 1" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(150).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(150).jpg", description: "Image 2" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(152).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(152).jpg", description: "Image 3" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(42).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(42).jpg", description: "Image 4" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(151).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(151).jpg", description: "Image 5" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(40).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(40).jpg", description: "Image 6" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(148).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(148).jpg", description: "Image 7" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(147).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(147).jpg", description: "Image 8" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(149).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(149).jpg", description: "Image 9" }
];
}
Gallery with heading MDB Pro component
My Projects
<div class="row">
<h2 class="font-weight-bold my-5 text-center mx-auto">My Projects</h2>
<mdb-image-modal [modalImages]="imagesWithHeading"></mdb-image-modal>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'heading-lightbox',
templateUrl: './heading-lightbox.component.html',
styleUrls: ['./heading-lightbox.component.scss'],
})
export class HeadingLightboxComponent {
imagesWithHeading = [
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(63).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(63).jpg", description: "Image 1" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(66).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(66).jpg", description: "Image 2" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(65).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(65).jpg", description: "Image 3" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(67).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(67).jpg", description: "Image 4" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(68).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(68).jpg", description: "Image 5" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(64).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(64).jpg", description: "Image 6" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(69).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(69).jpg", description: "Image 7" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(59).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(59).jpg", description: "Image 8" },
{ img: "https://mdbootstrap.com/img/Mockups/Lightbox/Original/img%20(70).jpg", thumb: "https://mdbootstrap.com/img/Mockups/Lightbox/Thumbnail/img%20(70).jpg", description: "Image 9" }
];
}
Projects presentation MDB Pro component
My projects
All about my work
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit, error amet numquam iure provident voluptate esse quasi, veritatis totam voluptas nostrum quisquam eum porro a pariatur accusamus veniam. At ab ea a molestiae corrupti numquam quo beatae minima ratione magni accusantium repellat eveniet quia vitae.
<div class="row">
<h1 class="text-center text-uppercase font-weight-bold mt-5 mb-3 mt-5">My projects</h1>
<p class="text-center text-uppercase font-weight-bold">All about my work</p>
<p class="section-description mt-5 pt-2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit, error
amet numquam iure provident voluptate esse quasi, veritatis totam voluptas nostrum quisquam eum porro a
pariatur accusamus veniam. At ab ea a molestiae corrupti numquam quo beatae minima ratione magni accusantium
repellat eveniet quia vitae.</p>
<div class="row ml-3 mr-3 pb-4 pt-1">
<div class="col-md-12">
<mdb-image-modal [modalImages]="projectsImages"></mdb-image-modal>
</div>
<div class="col-md-12 text-center py-4">
<a class="btn btn-outline-black waves-effect"><strong>more</strong></a>
</div>
</div>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'projects-lightbox',
templateUrl: './projects-lightbox.component.html',
styleUrls: ['./projects-lightbox.component.scss'],
})
export class ProjectsLightboxComponent {
projectsImages = [
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(135).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(135).jpg", description: "Image 1" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(128).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(128).jpg", description: "Image 2" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(133).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(133).jpg", description: "Image 3" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(131).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(131).jpg", description: "Image 4" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(130).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(130).jpg", description: "Image 5" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(132).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(132).jpg", description: "Image 6" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(134).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(134).jpg", description: "Image 7" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(1).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(1).jpg", description: "Image 8" },
{ img: "https://mdbootstrap.com/img/Photos/Lightbox/Original/img%20(131).jpg", thumb: "https://mdbootstrap.com/img/Photos/Lightbox/Thumbnail/img%20(131).jpg", description: "Image 9" }
];
}
Angular Lightbox - API
In this section you will find informations about required modules and available inputs, outputs, methods and events of lightbox component.
Modules used
In order to speed up your application, you can choose to import only the modules you actually need, instead of importing the entire MDB Angular library. Remember that importing the entire library, and immediately afterwards a specific module, is bad practice, and can cause application errors.
// For MDB Angular Pro
import { LightBoxModule, WavesModule } from 'ng-uikit-pro-standard'
Components
ImageModalComponent
Selector: mdb-image-modal
Type: ImageModalComponent
Inputs
Name | Type | Default | Description | Example |
---|---|---|---|---|
modalImages |
[{img: string, thumb: string, description: string, caption: string}] | - | Input for filling lightbox with images. | [modalImages]="images" |
type |
string | - | Input changing type of the lightbox. Possible values are margin, no-margin. | type="no-margin" |
Methods
Below methods are available in ImageModalComponent
Name | Description |
---|---|
prevImage() |
Navigates to the previous image in the lightbox view. |
nextImage() |
Navigates to the next image in the lightbox view. |