initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
(function (ns, $) {
|
||||
'use strict';
|
||||
|
||||
let images = [];
|
||||
let index = 0;
|
||||
|
||||
function refreshButton(selector, disabled) {
|
||||
const button = $(selector).prop('disabled', disabled);
|
||||
if (button.hasClass('ui-button')) button.button('refresh');
|
||||
}
|
||||
|
||||
function render() {
|
||||
const hasImages = images.length > 0;
|
||||
$('#slideshow').toggle(hasImages);
|
||||
if (!hasImages) return;
|
||||
|
||||
const image = images[index];
|
||||
$('#slide-image')
|
||||
.attr('src', image.url)
|
||||
.attr('alt', image.caption || 'Bild zur Station');
|
||||
$('#slide-caption').text(image.caption || '');
|
||||
$('#slide-position').text(`${index + 1} / ${images.length}`);
|
||||
refreshButton('#slide-prev', images.length < 2);
|
||||
refreshButton('#slide-next', images.length < 2);
|
||||
}
|
||||
|
||||
ns.Slideshow = {
|
||||
show(items) {
|
||||
images = items || [];
|
||||
index = 0;
|
||||
render();
|
||||
},
|
||||
next() {
|
||||
if (images.length) index = (index + 1) % images.length;
|
||||
render();
|
||||
},
|
||||
previous() {
|
||||
if (images.length) index = (index - 1 + images.length) % images.length;
|
||||
render();
|
||||
}
|
||||
};
|
||||
|
||||
$(document)
|
||||
.on('click', '#slide-next', () => ns.Slideshow.next())
|
||||
.on('click', '#slide-prev', () => ns.Slideshow.previous());
|
||||
}(window.Wegwichtel, window.jQuery));
|
||||
Reference in New Issue
Block a user