Bonjour,
en injectant quelques lignes de javascript dans le fichier skin.js, je parviens à insérer une image d’arrière-plan et je crée un petit effet de transparence pour plus d’immersivité.
J’ai créé une fonction qui s’exécute régulièrement pour corriger le problème d’un rectangle blanc qui s’affiche lors du défilement des slides.
Voici ce script :
// Skin-specific Javascript code
function changeBackground(b) {
// no-repeat center center fixed
back = "url(" + back + ")"
// document.getElementById('slideFrame').style.backgroundImage = back;
document.getElementById('slideFrame').style.background = "no-repeat center center fixed " + back;
document.getElementById('slideFrame').style.backgroundSize = "cover";
// document.getElementById('root').style.backgroundImage = back;
// document.getElementById('root').style.opacity = 0;
document.getElementById('home').getElementsByTagName('div')[0].style.backgroundImage = back; // couverture
}
back = "https://letrois.info/wp-content/uploads/2021/10/VUE_1_WEB_ENGEL-2048x1376.jpg"
changeBackground(back)
document.querySelector('footer').style = 'display: none' // supprimer le footer
function semitransp(tag) {
elements = document.getElementsByClassName(tag); // get all elements
for (i = 0; i < elements.length; i++) {
elements[i].style.backgroundColor = "#ffffffdf";
}
}
function deleteOpacity(tag) {
// lorsque la slide est un peu longue et qu'une partie du texte est caché sur le bas de l'écran en attente de s'afficher, opale affiche un rectangle blanc avec une opacité de 0.9, ce qui ne colle pas avec mon effet de transparence. Passer cette opacité à 0 règlerait le problème
elements = document.getElementsByClassName(tag); // get all elements
for (i = 0; i < elements.length; i++) {
elements[i].style.opacity = "0";
}
}
function changeBackground4ActiveImage() {
elements = document.getElementsByClassName("ssSlide mainSlide"); // get all elements
// Il s'agit d'une
for (i = 0; i < elements.length; i++) {
if (elements[i].style.visibility != "hidden") {
slides = elements[i].getElementsByClassName("ssBk");
for (j = 0; j < slides.length; j++) {
if (slides[j].style.opacity != "0") {
if (typeof(slides[j].getElementsByTagName("img")[0]) != "undefined") {
firstImage = slides[j].getElementsByTagName("img")[0]; // numéro de slide ?
// console.log(elements[i].section.div.div);
if (typeof(firstImage.src) != "undefined") {
console.log(firstImage.src);
back = firstImage.src;
changeBackground(back)
} else {
console.log("Pas d'image !");
}
} else {
console.log("Pas d'image !");
}
}
}
}
}
}
semitransp('ssBk');
semitransp('ssMask'); // slide de la slide : élément supérieur ou inférieur. => supprimé par le changement de slide !
var intervalId = window.setInterval(function() {
deleteOpacity('ssMask');
// changeBackground4ActiveImage();
}, 500);
Une autre idée serait de désactiver (ou modifierà l’effet de transition de fondu entre slides car avec une image en fond, le fondu s’applique à l’arrière-plan et non pas seulement au texte.
Enfin, le top serait de changer d’image d’arrière-plan en cours de slides, mais je ne sais pas comment faire. Peut-être en injectant du js dans des slides ?