46 lines
2.2 KiB
JavaScript
46 lines
2.2 KiB
JavaScript
|
"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);
|
||
|
}
|
||
|
}
|
||
|
};
|