Responsive no-jQuery pure JS/CSS Lightbox for images, no dependencies, 10kb unminified source code, with demo
https://cdn.jsdelivr.net/gh/englishextra/img-lightbox@latest/img-lightbox.min.js
https://cdn.jsdelivr.net/gh/englishextra/img-lightbox@latest/img-lightbox.min.css
https://unpkg.com/img-lightbox@latest/img-lightbox.js
https://unpkg.com/img-lightbox@latest/img-lightbox.css
npm install img-lightbox
bower install img-lightbox
class
is "img-lightbox-link" required.
data-src
is required, and contains URL of your image.
<a href="https://farm1.staticflickr.com/955/27854475488_4f2b7f52e4_k.jpg"
class="img-lightbox-link"
data-src="https://farm1.staticflickr.com/955/27854475488_4f2b7f52e4_k.jpg"
aria-label="hidden"
rel="lightbox"><img src="https://farm1.staticflickr.com/955/27854475488_5f82a379ca_z.jpg" alt="Image Lightbox" /></a>
imgLightbox(document.body || "");
SPA / PWA developers don't need to bother: built-in class is added to a link.
That way you avoid multiple assignments to a single element.
var manageImgLightboxLinks = function (root, scope) {
var ctx = scope && scope.nodeName ? scope : "";
if (root.imgLightbox) {
imgLightbox(ctx, {
onCreated: function () {
// show your preloader
},
onLoaded: function () {
// hide your preloader
},
onError: function () {
// hide your preloader
},
});
}
};
manageImgLightboxLinks("undefined" !== typeof window ? window : this, document.body || "");
Available under MIT License