Bonjour, j'ai un petit soucis avec la cohabitation de 2 fichiers js comprenant chacun un "onLoad"
Je fais appel dans une popup à deux fichiers js stockés dans un dossier "scripts" à la racine du site:
Code :
- <script type="text/javascript" src="scripts/script_galerie.js"></script>
- <script type="text/javascript" src="scripts/preload.js"></script>
|
fichier script_galerie.js:
Code :
- function displayPics()
- {
- var photos = document.getElementById('galerie_mini') ;
- // On récupère l'élément ayant pour id galerie_mini
- var liens = photos.getElementsByTagName('a') ;
- // On récupère dans une variable tous les liens contenu dans galerie_mini
- var big_photo = document.getElementById('big_pict') ;
- // Ici c'est l'élément ayant pour id big_pict qui est récupéré, c'est notre photo en taille normale
- // Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
- for (var i = 0 ; i < liens.length ; ++i) {
- // Au clic sur ces liens
- liens[i].onclick = function() {
- big_photo.src = this.href; // On change l'attribut src de l'image en le remplaçant par la valeur du lien
- big_photo.alt = this.title; // On change son titre
- return false; // Et pour finir on inhibe l'action réelle du lien
- };
- }
- }
- window.onload = displayPics;
|
fichier preload.js:
Code :
- var speed = 10;
- var transition = 10;
- // Dimensions du preloader en GIF animé
- var GIFpreloadLargeur = 32;
- var GIFpreloadHauteur = 32;
- var timer= 0;
- var opaciT = 100;
- function opacity()
- {
- opaciT = opaciT - transition;
- var object = document.getElementById('preloader').style;
- object.opacity = (opaciT / 100);
- object.MozOpacity = (opaciT / 100);
- object.KhtmlOpacity = (opaciT / 100);
- object.filter = "alpha(opacity=" + opaciT + " )";
-
- if (opaciT <= 0)
- {
- document.getElementById('preloader').style.visibility='hidden';
- clearInterval(timer);
- }
- }
- function preload()
- {
- if (document.getElementById)
- {
- document.getElementById('preloadIMG').style.visibility='hidden';
- timer = setInterval("opacity()",speed);
- }
-
- else
- {
- if (document.layers)
- {
- document.preloadIMG.visibility = 'hidden';
- timer = setInterval("opacity()",speed);
- }
- else
- {
- document.all.preloadIMG.style.visibility = 'hidden';
- timer = setInterval("opacity()",speed);
- }
- }
- }
- // GÉNÉRER LE CSS POUR LE PRELOADER
- var myCSS;
- myCSS = "<style type=\"text/css\">";
- myCSS += "html, body { height:auto; margin:0px; padding:0px;}";
- myCSS += "#preloader {";
- myCSS += "position:fixed;";
- myCSS += "background-color:white;";
- myCSS += "width:100%;";
- myCSS += "height:100%; ";
- myCSS += "display:block;";
- myCSS += "z-index:100000;";
- myCSS += "}";
- myCSS += "#preloadIMG {";
- myCSS += "position:absolute;";
- myCSS += "left:50%;";
- myCSS += "width:" + GIFpreloadLargeur + "px;";
- myCSS += "height:" + GIFpreloadHauteur + "px;";
- myCSS += "margin-left:-" + (GIFpreloadLargeur / 2) + "px;";
- myCSS += "top:150px;";
- myCSS += "}";
- myCSS += "</style>";
- // ÉCRITURE DES CSS
- window.document.write(myCSS);
- // ÉXÉCUTION
- window.onload = function() { preload(); }
|
Le preload fonctionne très bien, mais du coup c'est le script de la galerie qui a un soucis, les photos s'affichent dans une nouvelle page au lieu de s'afficher dans la même page.
J'ai lu sur d'autres forums que le problème pouvait venir de la cohabitation de 2 "onLoad", mais je ne sais pas comment le résoudre.
Merci par avance pour votre aide.
Message édité par Ben-o le 11-05-2007 à 11:29:13