// Diaporama // Version : 6.04.03 modifiée par Bob (comp. xhtml) // // http://so.fun.free.fr if (monDiaporama == null) { var monDiaporama = new Array(); } function Diaporama(id_diaporama, frequenceH, vitesseH, delai, largeurMax, hauteurMax, typeTransition) { this.id_diaporama = id_diaporama; this.diapo = new Array(); this.calque1 = ""; this.calque2 = ""; this.frequenceH = frequenceH; this.vitesseH = vitesseH; this.delai = delai; // délai entre chaque rotations this.largeurMax = largeurMax; this.hauteurMax = hauteurMax; this.indexDiapo = 2; this.masquePanneauCommande = false; this.epaisseurCadre = 0; this.couleurCadre = "#52733E"; if (!typeTransition) // slide ou flou { this.typeTransition = "slide"; } else { this.typeTransition = "flou"; } this.stats = new Image(); this.stats.src = ""; } function ajoutePhoto(url_photo) { nb_diapo = this.diapo.length; this.diapo[nb_diapo] = new Image(); this.diapo[nb_diapo].src = url_photo; } function progressionChangeDiapoH() { if (this.calque1.offsetWidth > 0) { if ( (this.calque1.offsetWidth - this.vitesseH) < 0) { this.calque1.style.width = "0px"; } else { this.calque1.style.width = (this.calque1.offsetWidth - this.vitesseH) + "px"; } setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.frequenceH); } else { // inversion des calques this.calque1.style.zIndex = 1; // le calque écrasé passe au dessous this.calque2.style.zIndex = 2; // le calque visible passe au dessus this.calque1.style.width = this.largeurMax + "px"; // le calque du dessous reprends sa taille initiale // Mise en place d'une nouvelle image dans le calque qui se trouve en arrière this.calque1.style.backgroundImage = "url('" + this.diapo[this.indexDiapo].src + "')"; this.indexDiapo++; if (this.indexDiapo >= this.diapo.length) this.indexDiapo = 0; //inversion des références des calques car seul calque1 rétrécit calqueTemp = this.calque2; this.calque2 = this.calque1; this.calque1 = calqueTemp; if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked ) { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai); } else { setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", this.delai); } } } function progressionChangeDiapoFlou() { this.vitesse = this.vitesseH; this.frequence = this.frequenceH; if (this.calque1.style.opacity > 0) {// disparition de l'image du dessus // pour Firefox (le paramètre existe sous IE mais n'a pas d'influence) // ce paramètre sert de base commune pour les deux navigateurs pour tester l'état du calque opacite = parseFloat(this.calque1.style.opacity) - parseFloat(this.vitesse / 100); if (opacite < 0) { opacite=0; } this.calque1.style.opacity = opacite // pour IE if (this.calque1.style.filter) { texte = this.calque1.style.filter; opacite = texte.replace(/alpha\(opacity=([0-9]*)\)/, '$1'); opacite = parseFloat(opacite) - this.vitesse; if (opacite < 0) { opacite=0; } //nouveau_texte = texte.replace(/alpha\(opacity=([0-9]*)\)/, 'alpha(opacity=' + opacite + ')'); nouveau_texte = 'alpha(opacity=' + opacite + ')'; this.calque1.style.filter = nouveau_texte; } setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.frequence); } else { // inversion des calques this.calque1.style.zIndex = 1; // le calque écrasé passe au dessous this.calque2.style.zIndex = 2; // le calque visible passe au dessus this.calque1.style.opacity = 1; // le calque du dessous reprends sa taille initiale if (this.calque1.style.filter) { this.calque1.style.filter = 'alpha(opacity=100)'; } // Mise en place d'une nouvelle image dans le calque qui se trouve en arrière this.calque1.style.backgroundImage = "url('" + this.diapo[this.indexDiapo].src + "')"; this.indexDiapo++; if (this.indexDiapo >= this.diapo.length) this.indexDiapo = 0; //inversion des références des calques car seul calque1 rétrécit calqueTemp = this.calque2; this.calque2 = this.calque1; this.calque1 = calqueTemp; if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked ) { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai); } else { setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", this.delai); } } } function pause() { if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked ) { if (this.typeTransition == "slide") { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai); } else if (this.typeTransition == "flou") { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai); } } else { setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", 1000); } } function placeDiaporama() { navigateur = navigator.appName; // test du navigateur pour inclure la propriété non conforme filter:alpha de IE filterIE = ""; if (navigateur == 'Microsoft Internet Explorer') {filterIE = "filter: alpha(opacity=100)";} document.write('
'); // début du tableau pour le cadre document.write('
'); document.write('Diaporama
'); // je réutilise une des images à la place d'un pixel transparent document.write('
'); document.write('
'); document.write('
Chargement...
'); document.write('
'); // fin du tableau pour le cadre this.calque1 = document.getElementById('div_diapo1_' + this.id_diaporama); this.calque2 = document.getElementById('div_diapo2_' + this.id_diaporama); this.calque1.style.height = this.hauteurMax + "px"; this.calque2.style.height = this.hauteurMax + "px"; this.calque1.style.width = this.largeurMax + "px"; this.calque2.style.width = this.largeurMax + "px"; this.calque1.style.zIndex = 2; // dessus this.calque2.style.zIndex = 1; // dessous } function testImagesOk() { this.nbImagesOk = 0; // boucle pour compter le nombre d'images chargées nbImagesOk = 0; for (i=0; i= this.diapo.length) { if (this.masquePanneauCommande) { panneauCommande = ''; } else { panneauCommande = 'automatique'; } document.getElementById('div_chargement_' + this.id_diaporama).innerHTML = panneauCommande; if (this.typeTransition == "slide") { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai); } else if (this.typeTransition == "flou") { setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai); } } else { setTimeout("monDiaporama[" + this.id_diaporama + "].testImagesOk()", 1000); } } function masquerPanneauCommande() { this.masquePanneauCommande = true; } function ajouteCadre(epaisseur, couleur) { this.epaisseurCadre = epaisseur; this.couleurCadre = couleur; } // liaison des fonctions à l'objet Diaporama.prototype.ajoutePhoto = ajoutePhoto; Diaporama.prototype.progressionChangeDiapoH = progressionChangeDiapoH; Diaporama.prototype.progressionChangeDiapoFlou = progressionChangeDiapoFlou; Diaporama.prototype.pause = pause; Diaporama.prototype.placeDiaporama = placeDiaporama; Diaporama.prototype.testImagesOk = testImagesOk; Diaporama.prototype.masquerPanneauCommande = masquerPanneauCommande; Diaporama.prototype.ajouteCadre = ajouteCadre; // Configuration personnalisée du diaporama nouveau_id_diaporama = "0"; // Valeur numérique au choix propre à chaque diaporama, nécessaire en cas de plusieurs diaporamas. // Paramètres : durée transition, étapes de transition en %, pause entre transitions, largeur image, hauteur image, style diaporama : "flou "/ "" (slide par défaut si vide) // monDiaporama[nouveau_id_diaporama] = new Diaporama(nouveau_id_diaporama, 30, 2, 1000, 200, 120, "flou"); // Au moins trois photos à définir monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/lhorsdutemps.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/jeepcustom.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/bioenergies.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/globerouleur2.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/carabiniers.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/laclefdevoute.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/lateliercuisine.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/arebours.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/sophrene.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/capelans.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/vibrato.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/annelysgalen.jpg"); monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/poulenc.jpg"); monDiaporama[nouveau_id_diaporama].masquerPanneauCommande(); // monDiaporama[nouveau_id_diaporama].ajouteCadre(3, "#000000"); monDiaporama[nouveau_id_diaporama].placeDiaporama(); monDiaporama[nouveau_id_diaporama].testImagesOk();