Bonjour a tous,
Je vous explique brièvement mon problème :
Je souhaite créer un bandeau qui puisse changer d'image de fond toutes les x secondes avec une transition pas trop dégueulasse.
J'utilise pour cela Javascript , j'ai créé plusieurs fonctions pour ça:
Ce code change donc d'image toutes les 8,5 secondes et modifie l'opacité de la div pour essayer de faire une transition pas trop moche. ( A améliorer encore a mon goût, mais la n'est pas le problème).
Le problème vient du fait que la div "bandeau" contient une div "menu" et que l'opacité de cette div est modifiée aussi.
J'ai essayé de modifier le z-index des deux div mais ça n'y change rien.
Existe-t-il une solution autre que passer par le JavaScript pour que ma div "menu" ne soit pas modifiée?
Voilà le css pour ces deux div
En espérant que quelqu'un à déjà eu ce problème et qu'il l'a résolu.
Bien cordialement,
elkastor
[/i]
Modifié par elkastor (29 Jul 2010 - 14:00)
Je vous explique brièvement mon problème :
Je souhaite créer un bandeau qui puisse changer d'image de fond toutes les x secondes avec une transition pas trop dégueulasse.
J'utilise pour cela Javascript , j'ai créé plusieurs fonctions pour ça:
//me permet de changer la source de l'image (path) de la div id
function changeImageSrc(id,path){
var url = "url(\""+path+"\")";
document.getElementById(id).style.background= url;
fondu_t();
}
//réduit l'opacité de la div pour la première partie de la transition
function fondu_d(){
var bandeau = document.getElementById('bandeau');
var opacity = window.getComputedStyle(bandeau,null).getPropertyValue('opacity');
if(opacity>0.1){
//alert(1);
opacity /=2;
document.getElementById('bandeau').style.opacity=opacity;
var timer = window.setTimeout("fondu_d()",100);
}
}
//augmente l'opacité de la div pour la 2e partie de la transition
function fondu_t(){
var bandeau = document.getElementById('bandeau');
var opacity = window.getComputedStyle(bandeau,null).getPropertyValue('opacity');
if(opacity<1){
//alert(1);
opacity *=2;
document.getElementById('bandeau').style.opacity=opacity;
var timer = window.setTimeout("fondu_t()",100);
}
}
//me permet d'attendre pour faire la transition
var time =0;
function diapo(){
if(time!=4){
time++
var timer = window.setTimeout("diapo()",2000);
}
else{
fondu_d();
time=0;
}
}
//définit les images et permet de les changer avac transition
var Images = ["./img1.png", "./img2.png", "./img3.png"];
var i =0;
function slideshow(){
if(i==3)
i=0;
diapo();
changeImageSrc('bandeau' ,''+Images[i]+'');
i++;
var timer = window.setTimeout("slideshow()",8500);
}
Ce code change donc d'image toutes les 8,5 secondes et modifie l'opacité de la div pour essayer de faire une transition pas trop moche. ( A améliorer encore a mon goût, mais la n'est pas le problème).
Le problème vient du fait que la div "bandeau" contient une div "menu" et que l'opacité de cette div est modifiée aussi.
J'ai essayé de modifier le z-index des deux div mais ça n'y change rien.
Existe-t-il une solution autre que passer par le JavaScript pour que ma div "menu" ne soit pas modifiée?
Voilà le css pour ces deux div
#menu{
width : 170px;
height:184px;
background : url("./fond-menu.png");
opacity : 0.8;
/* for IE */
filter:alpha(opacity=80);
z-index:8;
position : absolute;
top : 0px;
left:0px;
}
#bandeau{
position : relative;
float : left;
width : 996px;
height: 212px;
background : url("./img1.png");
opacity : 1.0;
/* for IE */
filter:alpha(opacity=100);
z-index:1;
}
En espérant que quelqu'un à déjà eu ce problème et qu'il l'a résolu.
Bien cordialement,
elkastor
[/i]
Modifié par elkastor (29 Jul 2010 - 14:00)