SICKofitALL misanthrope | recep a écrit :
Non pas regardé à parseFloat... et je n'ai pas bien saisi quand tu dis initialiser l'opacity pour les images???
- le code est executé via <body onload="init();">
- qu'est-ce que tu veux dire par debug ?
(au passage, juste pour te dire que je suis un débutant pour la création de site )
|
J'ai repris ton code et modifié un peu pour que ca fonctionne sous autre chose que IE.
Ce code n'est pas à 100% fonctionnel (et potentiellement buggé sur autre chose que FF ) mais je pense que ca devrait te donner une idée de la méthodologie (note au passage que les images et leurs chemins associés ne sont forcément plus les mêmes que chez toi, cf les balises IMG en bas du code et le tableau _maliste) :
Code :
- <html>
- <head>
- <style>
- .transpa0 {
- opacity:0;
- filter: Alpha (opacity=0);
- -moz-opacity: 0;
- -khtml-opacity: 0;
- position: relative;
- left: -256px;
- }
- .transpa100 {
- opacity: 1;
- filter: Alpha(opacity=100);
- -moz-opacity: 1;
- -khtml-opacity: 1;
- }
- </style>
- <script>
- var temps = 50,
- temps_pause = 2000,
- nombre_image = 4,
- prefix_image = '',
- suffix_image = '.jpg',
- indice = 2,
- isIE = navigator.userAgent.toLowerCase ().indexOf ('msie') != -1,
- coef = (isIE ? 5 : 0.05),
- img1 = null,
- img2 = null,
- sens = 1,
- opacityInit = (isIE ? 100 : 1),
- tabImg = [],
- _maliste = ['hoff.jpg', 'ga.jpg', 'boisBlanc.png', 'marbre.png']; // array perso pour que je puisse tester chez moi
- // -----------------------------------------------------------------------------------------
- function prechargerImg ()
- {
- for (var i = 0, img; i < nombre_image; i++)
- {
- img = new Image ();
- img.src = _maliste[i];
- img.className = "transpa0";
- tabImg.push (img);
- }
- img1 = document.getElementById ("defilement1" );
- img2 = document.getElementById ("defilement2" );
- indice = 1;
- };
- // -----------------------------------------------------------------------------------------
- function init()
- {
- prechargerImg ();
- change_opacity ();
- };
- // -----------------------------------------------------------------------------------------
- function change_opacity ()
- {
- var sImg1 = (isIE ? img1.filters.alpha : img1.style),
- sImg2 = (isIE ? img2.filters.alpha : img2.style),
- opacity1 = (isNaN (parseFloat (sImg1.opacity)) ? opacityInit : parseFloat (sImg1.opacity)),
- opacity2 = (isNaN (parseFloat (sImg2.opacity)) ? 0 : parseFloat (sImg2.opacity)),
- c = coef * sens,
- o1 = opacity1 - c,
- o2 = opacity2 + c;
- sImg1.opacity = o1;
- sImg2.opacity = o2;
- if (o2 >= opacityInit || o2 <= 0)
- {
- indice++;
- indice %= nombre_image;
- if (sens > 0)
- {
- img1.src = tabImg[indice].src;
- }
- else
- {
- img2.src = tabImg[indice].src;
- }
- sens = -sens;
- setTimeout (change_opacity, temps_pause);
- return;
- }
- setTimeout (change_opacity, temps);
- };
- window.onload = function ()
- {
- setTimeout (init, temps_pause);
- };
- </script>
- </head>
- <body>
- <img alt="Diapo" title="Diapo" width="256" height="256" id="defilement1" src="hoff.jpg" class="transpa100" />
- <img alt="Diapo" title="Diapo" width="256" height="256" id="defilement2" src="ga.jpg" class="transpa0" />
- </body>
- </html>
|
Pour la partie debug, cherche l'extension Firebug pour Firefox. Pour les développer web (surtout en ce qui concerne le javascript) c'est assez pratique, voir indispensable
j'ai mis à jour (ce code ainsi que la version online : http://www.site-escape.com/taf/hfr/hfr5.html ), ca fonctionne sous IE aussi à présent ---------------
We deserve everything that's coming...
|