frantzistor
Messages postés3Date d'inscriptionlundi 29 décembre 2008StatutMembreDernière intervention21 juillet 2009
-
29 déc. 2008 à 10:49
frantzistor
Messages postés3Date d'inscriptionlundi 29 décembre 2008StatutMembreDernière intervention21 juillet 2009
-
29 déc. 2008 à 11:07
Bonjour et joyeuses fêtes à tous,Je suis nouveau sur ce forum, je m'appelle Frantz et suis infographiste print à Paris.
J'ai un petit soucis sur un site dont je m'occupe et n'arrivant pas à le résoudre de moi même (c'est pas faute d'avoir cherché) je me soumet à vous.
Ainsi voici mon probleme : J'ai un site internet qui comprend des styles CSS, des modeles et du javascript. Or celui ci est parfait sur Internet Explorer mais sur Firefox j'ai la barre horizontale des menus qui est decentrée et de plus je perd le background de ma page, je ne sais plus quoi faire.
Je vous ai mis le code javascript appliqué a la page :
/* true = le menu sera vertical, à gauche.
false = le menu sera horizontal, en haut. */
var vertical = false;
var centrer_menu = true;
var largeur_menu = 84;
var hauteur_menu = 25;
var largeur_sous_menu = 175;
var espace_entre_menus = 3;
var top_menu = 172;
var top_ssmenu = top_menu + 23;
var left_menu = 0;
var left_ssmenu = largeur_menu+2;
var delai = 500; // en milliseconde
var marge_en_haut_de_page = top_menu + 25;
var marge_a_gauche_de_la_page = largeur_menu + 10;
var suivre_le_scroll=false;
var cacher_les_select=true;
var nbmenu = 0; //Auto-calculé
var timeout; //ne pas toucher, c'est pour déclarer la variable
var agt = navigator.userAgent.toLowerCase();
var isMac = (agt.indexOf('mac') != -1);
var isOpera = (agt.indexOf('opera') != -1);
var IEver = parseInt(agt.substring(agt.indexOf('msie ') + 5));
var isIE = ((agt.indexOf('msie')!=-1 && !isOpera && (agt.indexOf('webtv')==-1)) && !isMac);
var isIE5win = (isIE && IEver >= 5);
var isIE5mac = ((agt.indexOf('msie') != -1) && isMac);
var isSafari = (agt.indexOf('safari') != -1);
//pour enlever les "px" pour faire des calculs...
var reg = new RegExp("px", "g");
// onScroll pour Internet Explorer, le position:fixed fait ce boulot pour les autres navigateurs
// qui respectent les normes CSS...
window.onscroll = function()
{
if (suivre_le_scroll && (isIE || isIE5mac))
{
if (isIE5mac) document.getElementById("conteneurmenu").style.visibility="hidden";
var cumul=0;
for(i=1;i<=nbmenu;i++)
{
var scrollTop = (document.documentElement&&document.documentElement.scrollTop
?document.documentElement.scrollTop
:document.body.scrollTop);
if (!vertical) {
document.getElementById("menu"+i).style.top = scrollTop + top_menu + "px";
if (document.getElementById("ssmenu"+i))//undefined
document.getElementById("ssmenu"+i).style.top = scrollTop + top_ssmenu + "px";
} else {
document.getElementById("menu"+i).style.top = scrollTop
+(((i-1)*espace_entre_menus)+cumul+1+top_menu)+"px";
if (document.getElementById("ssmenu"+i))//undefined
document.getElementById("ssmenu"+i).style.top = scrollTop
+(((i-1)*espace_entre_menus)+cumul+1+top_menu)+"px";
cumul += isFinite(hauteur_menu)?hauteur_menu:hauteur_menu[i-1];
}
}
if (isIE5mac) document.getElementById("conteneurmenu").style.visibility="visible";
}
}
function preChargement()
{
if (document.getElementById("conteneurmenu"))
document.getElementById("conteneurmenu").style.visibility="hidden";
}
function Chargement() {
//Compte nbmenu
nbmenu = 0;
while (document.getElementById("menu"+(nbmenu+1)))
nbmenu++;
document.getElementById("conteneurmenu").style.visibility="hidden";
trimespaces();
with(document.body.style) {
if (!vertical) marginTop=marge_en_haut_de_page+"px";
else marginLeft=marge_a_gauche_de_la_page+"px";
}
// comme on a évité le clignotement, maintenant on fait apparaître le menu ;-)
document.getElementById("conteneurmenu").style.visibility='';
}
window.onresize = Chargement;
/*
* Place les éléments du menu correctement, au chargement, au scroll, au redimensionnement
* de la fenêtre
*/
function positionne() {
//Calcul hauteur et largeur fenêtre compatible avec certains doctypes IE
var largeur_fenetre;
if (document.documentElement && document.documentElement.clientWidth) {
largeur_fenetre = document.documentElement.clientWidth;
} else if (document.body && document.body.clientWidth) {
largeur_fenetre = document.body.clientWidth;
} else if (window.innerWidth) {
largeur_fenetre = window.innerWidth;
}
var hauteur_fenetre;
if (document.documentElement && document.documentElement.clientHeight) {
hauteur_fenetre = document.documentElement.clientHeight;
} else if (document.body && document.body.clientHeight) {
hauteur_fenetre = document.body.clientHeight;
} else if (window.innerHeight) {
hauteur_fenetre = window.innerHeight;
}
if (centrer_menu) {
if (!vertical) {
var largeur_totale = espace_entre_menus * (nbmenu-1);
if (isFinite(largeur_menu))
largeur_totale += largeur_menu * nbmenu;
else {
for (i = 1; i <= nbmenu; i++)
largeur_totale += largeur_menu[i-1];
}
left_menu = (largeur_fenetre - largeur_totale)/2;
} else {
var hauteur_totale = espace_entre_menus * (nbmenu-1);
if (isFinite(hauteur_menu))
hauteur_totale += hauteur_menu * nbmenu;
else {
for (i = 1; i <= nbmenu; i++)
hauteur_totale += hauteur_menu[i-1];
}
top_menu = (hauteur_fenetre - hauteur_totale)/2;
}
}
//Sous-menus
cumul = 0;
for(i=1;i<=nbmenu;i++) {
if (document.getElementById("ssmenu"+i))//undefined
{
with(document.getElementById("ssmenu"+i).style) {
if (!suivre_le_scroll || isIE || isIE5mac)
position="absolute";
else position="fixed";
if (!vertical) {
top=top_ssmenu+"px";
left=(((i-1)*espace_entre_menus)+cumul+1+left_menu)+"px";
} else {
left=left_ssmenu+"px";
top=(((i-1)*espace_entre_menus)+cumul+1+top_menu)+"px";
}
if (isIE || isOpera || isIE5mac || !largeur_auto_ssmenu) {
if (isFinite(largeur_sous_menu))
width = largeur_sous_menu+(largeur_sous_menu!="auto"?"px":"");
else
width = largeur_sous_menu[i-1]+(largeur_sous_menu[i-1]!="auto"?"px":"");
}
else width = "auto";
if (!vertical && !isIE5mac) {
//repositionnement si déborde à droite
if ((width != "auto")
&& ((left.replace(reg,'').valueOf()*1 + width.replace(reg,'').valueOf()*1) > largeur_fenetre))
left = (largeur_fenetre-width.replace(reg,'').valueOf())+"px";
}
margin="0";
zIndex="3";
}
}
if ((!vertical && isFinite(largeur_menu)) || (vertical && isFinite(hauteur_menu))) {
cumul += (!vertical?largeur_menu:hauteur_menu);
}
else {
cumul += (!vertical?largeur_menu[i-1]:hauteur_menu[i-1]);
}
}
}
function MontrerMenu(strMenu) {
AnnulerCacher();
CacherMenus();
if (document.getElementById(strMenu))//undefined
with (document.getElementById(strMenu).style)
visibility="visible";
SelectVisible("hidden",document.getElementsByTagName('select'));
}
function CacherDelai() {
timeout = setTimeout('CacherMenus()',delai);
}
function AnnulerCacher() {
if (timeout) {
clearTimeout(timeout);
}
}
function CacherMenus() {
for(i=1;i<=nbmenu;i++) {
if (document.getElementById("ssmenu"+i))//undefined
with(document.getElementById("ssmenu"+i).style)
visibility="hidden";
}
SelectVisible("visible",document.getElementsByTagName('select'));
}
function trimespaces() {
//Contourne un bug d'IE5/win... il ne capte pas bien les css pour les <li>, donc on les vire !
if(isIE5win) {
for(i=1;i<=nbmenu;i++) {
if (document.getElementById("ssmenu"+i))//undefined
with(document.getElementById("ssmenu"+i))
innerHTML = innerHTML.replace(/<LI>|<\/LI>/g,"");
}
}
}
function SelectVisible(v,elem) {
if (cacher_les_select && (isIE||isIE5win))
for (var i=0;i<elem.length;i++) elem[i].style.visibility=v;
}
Merci à tous de votre éventuelle aide. Je peux si c'est nécessaire vous poster le code html de ma page ou du modele. Mais je crois que c'est du javascript que viens le problème.
Bonne journée et à charge de revanche si vous avez des problèmes sur des travaux d'impressions
Boss2no
Messages postés224Date d'inscriptionsamedi 9 août 2008StatutMembreDernière intervention31 août 201017 29 déc. 2008 à 10:56
Personnelement j'ai un site que j'ai un peut téléchargé ... Mais je l'ai modifié et il y a des variables et si le navigateur est IE il faut des .gif et pour les autres .png (ou l'inverse)