younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 mars 2012
-
30 janv. 2007 à 10:18
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
30 janv. 2007 à 19:17
j'utilise cette fonction pour afficher un arrire plan en gris(ça semble come desactivé ce qui est en arriere de la couleur grise).
function AfficheCache(){
var Obj;
//-- on affiche le fond
Obj = document.getElementById('D_A');
if(Obj){
with( Obj.style){
position="absolute";
display="inline";
left = "135px";
top = "243px";
zIndex= 11;
}
}
}
function MasquerCache(){
var Obj;
//-- on masque le fond
Obj = document.getElementById('D_A');
if(Obj)
{
with( Obj.style)
{
display="none";
}
}
}
ça marche tres bien, mais mon probleme c'est que il s'affiche pas dans l'emplacement que je veux,
Normalement je veux afficher "la transparence grise" seulement dans un autre div
(
).
Le div qui fait la couelure grise est :
.
Remarque :sur la resolution 1024/768 et avec left "135px"; top "243px"; , la transparence s'affiche dans l'emplecement que je veux.
Merci pout vos aides.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 30 janv. 2007 à 16:34
B onjour...
...d'après ce que je viens de lire, il semblerait que le DIV id= "def" soit encapsuler.
Dans ce cas la recherche de sa position doit se faire en absolue comme suit, pour remonter au parent...
//----------------------------
function GetAbsolutePos( obj_){
var PosX = 0;
var PosY = 0;
var Obj = document.getElementById( obj_);
do{
PosX += Obj.offsetLeft;
PosY += Obj.offsetTop;
Obj = Obj.offsetParent;
}while( Obj);
return [PosX,PosY];
}
par exemple et l'appel dans la fonction AfficheCache devient...
//---------------------
function AfficheCache(){
var O_Cache = document.getElementById('D_A');
//-- on affiche le fond if( O_Cache){
with( O_Cache.style){
position="absolute";
display="inline";
left =
GetAbsolutePos('def')[0]
+"px";
top =
GetAbsolutePos('def')[1]
+"px";
zIndex= 11;
}
}
}
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 30 janv. 2007 à 11:50
B
onjour...
Il n'est pas judicieux de fixer la position left et top mais plutôt de récupérer la position du DIV devant être caché et d'ajuster la position du DIV cachant.
par exemple
//--------------------- function AfficheCache(){
var O_Cache =
document.getElementById('D_A');
var O_Srce =
document.getElementById('def');
//-- on affiche le fond
if( O_Cache){
with( O_Cache.style){
position ="absolute";
display= "inline";
left = O_Srce.offsetLeft +"px"; // Recup PosX
top =
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 30 janv. 2007 à 11:53
Bonjour,
pas tout compris....
° rien n'appelle AfficheCache()
° comment cliquer sur un élément invisible ( display:none ) ?
° à part cela, s'il faut afficher là où est le div "def"
document.getElementById("D_A").style.top= document.getElementById("def").offsetTop;
younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 mars 2012 30 janv. 2007 à 13:49
Merci mes amis de votre aide.
j'ai essayé la solution de PetolTeam mais ça marche pas,
l'appel de fonction je le fait avec :
j'ai plusieurs images qui s'affichent dans le div "def", je veux lorsque je clique sur une image, la transparence s'affiche sur les images (sur le div def).
j'arrive a afficherla transprence, mais pas dans le div, si je change le top et le left de afficheCache(); ça marche dans la reolution actuelle mais si je change la resolution, ça marche plus.
Merci.
younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 mars 2012 30 janv. 2007 à 15:05
<head>
function AfficheCache(){
var Obj;
//-- on affiche le fond
Obj = document.getElementById('D_A');
if(Obj){
with( Obj.style){
position="absolute";
display="inline";
left = "135px";
top = "243px";
zIndex= 11;
}
}
}
function MasquerCache(){
var Obj;
//-- on masque le fond
Obj = document.getElementById('D_A');
if(Obj)
{
with( Obj.style)
{
display="none";
}
}
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 30 janv. 2007 à 15:07
je ne demande pas ça pour emm%¤$£... le monde, ni voir
ce que tu fais, mais la solution de PetOleTeam doit fonctionner,
donc, tu dois avoir une erreur quelque part, et sans code...
on ne peut pas dire !
à propos, IE : Activer le Debogage,
FF/K-Meleon,Opera... : regarder la "console d'Erreurs"
dèjà ?
<hr />
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 30 janv. 2007 à 19:17
1000 excuses, j'ai répondu un peu vite tout à l'heure en repassant au bureau donc quelques explications...
Un DIV est par défaut en position relative, sauf indication contraire bien sur, par rapport à l'endroit ou il est déclaré.
on obtient dans ce cas PosX 0 et PosY 0 ce qui est FAUX par rapport à la page...
la position dépendra donc de la largeur, hauteur de la page et de la position du parent ici DIV_0...
Si l'on utilise la fonction décrite ci dessus dans ce cas on obtient la position réelle par rapport aux bords de la page...