vCarousel/src/vCarousel.js

46 lines
2.2 KiB
JavaScript
Raw Normal View History

2021-03-31 18:14:03 +02:00
"use strict";
/// La fonction reçoit un tableau d'ids de conteneurs contenant les vidéos à afficher successivement
/// Attention : les vidéos à afficher ne sont pas dédoublonnées, car on peut souhaiter afficher plusieurs fois la même vidéo durant un tour du carrousel
exports.__esModule = true;
exports.vCarousel = void 0;
exports.vCarousel = function (vContainers) {
// On commence par vérifier que les ids de conteneurs fournis sont correctes
var realVContainers = [];
for (var _i = 0, vContainers_1 = vContainers; _i < vContainers_1.length; _i++) {
var container = vContainers_1[_i];
var checkContainerExist = document.getElementById(container);
if (checkContainerExist === null) // utiliser fonctionner empty() de wikilerni ?
console.error("Aucun élément HTML trouvé dans la page pour l'id " + container);
else {
var checkVideoExist = document.querySelector("#" + container + " video"); // tester avec + plusieurs vidéos dans le conteneur
if (checkVideoExist === null)
console.error("Aucune balise vidéo trouvée dans l'élément HTML ayant comme id " + container);
else
realVContainers.push({ idContainer: container, containerElt: checkContainerExist, videoElt: checkVideoExist });
}
}
var nbContainers = realVContainers.length;
if (nbContainers < 2)
console.error("Il faut fournir au moins deux conteneurs valides pour faire tourner le carrousel.");
else {
var _loop_1 = function (i) {
var container = realVContainers[i].containerElt;
var video = realVContainers[i].videoElt;
if (i !== 0)
container.style.display = "none";
video.addEventListener("ended", function () {
container.style.display = "none";
var nextContainer;
if (i < (nbContainers - 1))
nextContainer = realVContainers[i + 1].containerElt;
else
nextContainer = realVContainers[0].containerElt;
nextContainer.style.display = "block";
});
};
for (var i = 0; i < nbContainers; i++) {
_loop_1(i);
}
}
};