This module provides an easy to use gallery. Demo page
For an example usage of the gallery, have a look inside the examples directory.
The whole gallery is defined by an as24-gallery
element. Each
item needs to be wrapped inside a as24-gallery-item
element.
Basically any content within an item is possible. Normally you
would use an a
(for seo reasons) wrapping an img
tag.
The items with the classes
placeholder
(placeholder when no images are defined),
page
(displays the current and total pages),
left
(left paginator) and
right
(right paginator)
are special child nodes that you can style and fill
depending on your individual needs.
<as24-gallery data-preload-items="2">
<div class="left"></div>
<as24-gallery-item>
<a href="http://placehold.it/640x480?text=1">
<img src="http://placehold.it/640x480?text=1,640x480" alt="">
</a>
</as24-gallery-item>
...
<div class="placeholder">No Images</div>
<div class="right"></div>
<div class="pager"></div>
</as24-gallery>
For better performance it is possible to lazy load images. Therefor just replace
the src
attribute of your img
with an data-src
attribute. For SEO reasons
include the source of the first img
always with the src
attribute.
You can adjust the amount of images that are preloaded with the data-preload-items
the default value is 2
.
To use the gallery on your page, some minimal css code is needed:
as24-gallery {
height: 480px;
width: 100%;
as24-gallery-item {
width: 50%;
min-width: 320px;
}
}
If you need to change the size of the gallery dynamically (e.g. width and/or height), you can call the redraw()
method, to force the gallery to recalculate its sizings and positionings.
document.getElementById('gallery-example').redraw()
You can listen on a as24-gallery:change
event. This event is triggered if a page was changed and a new image loaded:
$('as24-gallery').on('as24-gallery:change', (e) => console.log("Page changed", e) );
Via NPM:
npm i --save git+ssh://git@github.com:AutoScout24/showcar-gallery.git
Afterwards you can include it in your JS code
require('showcar-gallery'); // or import 'showcar-gallery';
For SCSS imports you need sass-module-importer plugin. After that, you can just import source code of the gallery:
@import "showcar-gallery/src/scss/showcar-gallery.scss"
Fork this repository and git clone
your fork. Then npm install
the required dependencies.
Note: If you do not have grunt
installed globally, use ./node_modules/.bin/grunt
instead.
Save your changes and run grunt dist
(or ./node_modules/.bin/grunt dist
).
Commit your code and the compiled libraries in ./dist. Then create a pull-request.
MIT License