Hello everyone,
I started to work on one of the Image improvements proposed here Improvements for images in XWiki. The task refers to the possibility to click on an image and have it opened in a lightbox (gallery view), with different information (name, date of creation, captions, button for download…) and the ability to navigate through the other images in the page (and maybe to filter in a way the selected images).
As a first step, I tried to analyse multiple JS libraries that could be suitable for this usecase and I would like your input for what would be a better choice.
I didn’t go into too much detail about some functionalities, since all the libraries have them (they load fast, have mobile, video support and zoom effect, with the ability to customize the displayed image in order to add other elements), with only some differences that could be seen from the demos or I specify them.
Differences could come from the fact that some are no longer maintained or the documentation is not that detailed.
These require jQuery:
-
FancyBox (Demos)
Only the old v3 can be used, which is the same as in the Fancybox macro, since the new Fancybox ui has a different licence and it cannot be used https://fancyapps.com/license. The only problem with this is that v3 doesn’t seems to be maintained anymore.
What I think is missing in terms of ui, is the possibility to see the current and next images as thumbnails at the bottom (feature that was added in v4).
Maven repository
License: GPLv3 for all open source applications -
Magnific Popup (Demos)
As in the case of fancybox, the library seems to not be maintained anymore, as the last release was in 2016. Although, it is a stable product with really nice and detailed documentation.
I find it similar to fancybox as it offers the same base functionalities, but with a larger group of options for customization.
It also lacks the possibility to display thumbnails at the bottom for easy navigation between images.
Maven repository
License: MIT -
Nanogallery2 (Demos)
This project does not have really recent changes, but the latest release is however from January 2021. It should also be considered that is also a more recent project (2019). A downside is that, for now, it is not compatible with jQuery v3.0/3.1, which could be a problem in case we upgrade it.
As a plus compared to the first 2 libraries, this has the possibility to display thumbnails at the bottom, for easy navigation between images. I also find the possibility to zoom in/out using the mouse wheel a nice feature.
The documentation is detailed and it offers multiple options for customization.
License: GPLv3 for personal or open source projects with GPLv3 license -
SimpleLightbox (Demo)
Compared to the others, this is the only that is recently maintained, with the latest release in September.
It has a detailed documentation with many options for easy customization. As a plus, it also has the possibility to zoom in/out using the mouse wheel, which is a nice feature.
Maven repository
License: MIT
Another nice library is Vue cool lightbox, which is not a jQuery library.This project has recent commits and it is inspired by fancybox. It seems it meets the requirements, being also easy to customize and with a detailed documentation (I did not found information about browser support).