Parade au style.width sous FireFox ? [Résolu]

Signaler
Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008
-
Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008
-
Bonjour,
je découvre à peine toutes les possibilités qu'offre le javascript ce qui explique mon niveau (je ne me suis pas trompé de section au moins :)).

Durant mon temps perdu j'ai créé un blog en php qui regorge de javascript. Ma dernière idée est d'ajouter un liens qui permettrais de cacher le menu. Quand on click dessu, le script lié fait un style.display='none' et redimensionne le div central avec un style.width.

Voilà pour l'explication. Mon problème est que sous firefox sa ne fonctionne pas (alors que sous Opera et meme sous IE sa fonctionne parfaitement). Existerait-il donc une parade pour que celà fonctionne ?


Voici mon code:
function cacheId(divId)
{
  the_check = document.getElementById(divId).style.display;

  if(the_check)
  {
    document.getElementById(divId).style.display='';
    document.getElementById('collapse').style.display='';
    document.getElementById('explode').style.display='none';
    document.getElementById('droite').style.width='640';
  }
  else
  {
    document.getElementById(divId).style.display='none';
    document.getElementById('collapse').style.display='none';
    document.getElementById('explode').style.display='';
    document.getElementById('droite').style.width='800';
  }	
}


Merci de votre aide !!

4 réponses

Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008

Bonjour,
J'ai retravaillé sur le problème cette journée (n'ayant pas le web j'avais du temps à perdre).

Le problème portait (car résolut) uniquement sur style.width, tout le reste est fonctionelle.

J'ai oublié de vous fornir un exemple pour voir la situation: http://www.jeanmariethiebaud.com/web/filter

J'ai aussi oublié de vous expliquer 2, 3 choses:
J'avais un théme entièrement fait avec des div's mais lorseque j'ai rajouter le calendrier que j'ai codé j'ai rencontré des problèmes avec les infobulls. Seul solution: créer un tableau de 2 cases, l'une pour le menu, l'autre pour le contenu des modules. Les cases n'avaient pas d'attribut width.

Dans mon script, droite est un div, en l'occurence c'est le div qui affiche le contenu du modules (donc la 'case' de droite). Collapse et Explode sont deux div's qui servent à changer l'icone '<' en une icone '>' et inversément en fonction de l'état d'affichage du menu.

=> Pour résoudre le problème:
J'ai supprimé l'attribut width des div's. J'ai ensuite mis l'attribut width dans le style des balises td. Ensuite, quand on click pour cacher le menu celà change le style.width des celulles et non plus des div's. Si surprenant que cela puisse paraître, sa fonctionne . . .

Ce problème est vraiment surprenant ...

Merci tout de même de votre aide!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

function cacheId(divId)
{
if( document.getElementById(divId).style.display != "block" )
{
document.getElementById(divId).style.display='block';
document.getElementById('collapse').style.display='block';
document.getElementById('explode').style.display='none';
document.getElementById('droite').style.width='640';
}
else
{
document.getElementById(divId).style.display='none';
document.getElementById('collapse').style.display='none';
document.getElementById('explode').style.display='block';
document.getElementById('droite').style.width='800';
}
}

peut-être ? ( ou inline )
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>

</FO>
</S< body>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai mal lu ? le problème est sur style.width ?
quoi que c'est comme balise "droite" ?
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Lorsque tu mets display = 'none'; normalement le calque n'est plus pris en compte. Ton calque central ne devrait pas avoir besoin d'être retaillé...