begin process at 2012 05 29 13:33:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

lundi 14 juillet 2008 à 13:57:15 | Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Bonjour,

J'ai construit un petit menu glissant tout simple en CSS et javascript qui fonctionne très bien en HTML, mais sous XHTML il bloque. Le menu est fait en ul, mais en div ou tableau, c'est pareil.
Ce serait sympa si quelqu'un pouvait me donner la raison de ce blocage et suggérer une modification pour le faire fonctionner avec DOCTYPE XHTML ?
Voici le code :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>menu glissant horizontal</title>
<style type="text/css">
*{margin:0;padding:0;border:0;font-family:sans-serif;font-size:1em;font-weight:normal;font-style:normal;text-decoration:none;}
#menu{z-index:20;font-size:10px;text-align:left;padding:5px 0 5px 0; background-color:#8fbc8f; list-style-type:none; position:absolute;top:20px; width:120px; left:-100px;}
#menu .tit{font-size:12px;background-color:blue;color:red;font-weight:bold;}
#menu .stit{background-color:green;font-weight:bold;}
#menu .item{background-color:yellow;}
#menu a:hover{background-color:blue;color:yellow;}
#menu .courriel {background-color:red;color:blue;font-size:12px;font-weight:bold;}
#menu .courriel a:hover{background-color:blue;color:red;font-weight:bold;}
#li_bouton{position:absolute;left:100px;top:0;height:345px;width:23px}
#bouton{height:345px;width:23px;}
</style>

<script type="text/javascript" language="JavaScript">
var flag=0;
var bouton="nav/menu.jpg";
function glisse(){
var Menu=document.getElementById("menu");
if(flag==1){
Menu.style.left=Menu.offsetLeft-10;
if(Menu.offsetLeft<=-100){
flag=0;
return false
}}
else if(flag==0){
Menu.style.left=Menu.offsetLeft+10;
if(Menu.offsetLeft>=0){
flag=1;
return false
}}
setTimeout("glisse()",1);
}
</script>
</head>
<body>
<!-- ******************* MENU ************************************-->
<div id="menu">
<ul>
<li id="li_bouton"><img id="bouton" src="nav/menu.jpg" alt="" onmouseover="glisse()" /></li>
<li class="tit">Titre 1</li>
<li class="item" ><a href="#">link</a></li>
<div class="item" ><a href="#">link</a></li>
<li class="tit">Titre 2</li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="tit">Titre 3</li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="tit">Titre 4</li>
<li class="stit">soustitre</li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="stit">soustitre</li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="stit">soustitre</li>
<li class="item" ><a href="#">link</a></li>
<li class="item" ><a href="#">link</a></li>
<li class="courriel" onmouseover="className='courriel a:hover'">
<a href="mailto:me@home.com">Email</a></li>
</ul>
</div>
<!-- **********************  FIN MENU ************************-->
</body>
</html>
lundi 14 juillet 2008 à 20:34:16 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

kazma

Administrateur CodeS-SourceS
jour
tu a une ligne ou tu a mis  div a la place de li
<div class="item" ><a href="#">link</a></li>
peut etre qu'en corigeant.......
mardi 15 juillet 2008 à 01:05:10 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Merci, bien vu ! J'ai corrigé, mais cela ne change rien. J'ai oublié de dire que, en XHTML, cela fonctionne sous IE, mais pas sous Firefox. En HTML, cela fonctionne avec les deux.
mardi 15 juillet 2008 à 10:03:43 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
même réponse que sur le post
http://www.javascriptfr.com/infomsg_MENU-DEROULANT-INOPERANT-SOUS-FF_1156446.aspx

attendu que les unités pour les attributs left, top etc... peuvent être des pt, mm, cm, em...ou px il est nécéssaire de préciser l'unité que tu souhaites.
IE par défaut semble affecter des px et FireFox ne sachant pas ne fait pas...
donc
Menu.style.left = Menu.offsetLeft -10 +"px" ;
Menu.style.left = Menu.offsetLeft +10 +"px" ;
;O)
mardi 15 juillet 2008 à 13:16:19 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Génial ! Ca marche. Je n'y avais pas pensé. Un grand merci !!!
jeudi 17 juillet 2008 à 14:45:40 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Bonjour,
Encore un petit souci : Le "glissement" du menu est beaucoup plus lent sous Firefox que sous IE. Est-il possible de résoudre ce phénomène ?
jeudi 17 juillet 2008 à 15:29:25 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

kazma

Administrateur CodeS-SourceS
Réponse acceptée !
pase par une condition ( if )

<script type="text/javascript" language="JavaScript">
var flag=0;
var bouton="nav/menu.jpg";
function glisse(){
var Menu=document.getElementById("menu");
if(flag==1){
if(navigator.appName.substring(0,3)=="Micro"){
Menu.style.left=Menu.offsetLeft-10;
}
else{
Menu.style.left=Menu.offsetLeft-15;
}

if(Menu.offsetLeft<=-100){
flag=0;
return false
}}
else if(flag==0){
if(navigator.appName.substring(0,3)=="Micro"){
Menu.style.left=Menu.offsetLeft+10;
}
else{
Menu.style.left=Menu.offsetLeft+15;
}

if(Menu.offsetLeft>=0){
flag=1;
return false
}}
setTimeout("glisse()",1);
}
</script>

le chiffre en rouge c'est lui qu'il faut modifie pour augmenter ou diminue la vitesse
on peut jouer sur le set timeout mais la valeur est au minimum (1 )
jeudi 17 juillet 2008 à 17:40:41 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Non Kasma, ça ne marche pas. Ca ne fait que shifter le menu de 5 px, mais ca ne résout pas le problème de la lenteur de glisse et de la saccade.
Merci quand même pour le conseil.
jeudi 17 juillet 2008 à 18:12:07 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

kazma

Administrateur CodeS-SourceS
je vient d'essayer le script ;il marche nikel pas de sacades j'ai modifie les parametres et j'obtient de grandes vitesses toujour sacades.
jeudi 17 juillet 2008 à 19:23:54 | Re : Menu glissant sous html ne fonctionne pas sous DOCTYPE XHTML

michof

Bonjour Kasma,
Il y a alors quelque chose qui m'échappe. Je suis nul en Javascript et j'ai besoin d'explications complémentaires.
Quand je modifie les valeurs en rouge, le menu entier shifte horizontalement et la vitesse ne change pas !
Sniff!

Sur le conseil judicieux de PetoleTeam, J'avais modifié
Menu.style.left = Menu.offsetLeft -10
+"px"
pour que ça fonctionne avec Firefox sous DOCTYPE XHTML, sinon ça bloque avec FF si je ne mets pas +"px".

1 2

Cette discussion est classée dans : menu, font, background, color, weight


Répondre à ce message

Sujets en rapport avec ce message

integrer image arriere plan dans menu CSS [ par ju0123456789 ] Bonjour,je viens de mettre en place un menu avec sous menu, et mon probleme est que je voudrais integrer une image d'arriere plan, mais soit ce n'est  [css]pas assez d'espace entre corps et banniere [ par pygo ] salut a tous,j'ai un petit soucis,je suis en train de construire une nouvelle version de mon site mais je n'ai pas assez d'espace entre le corps et la Newbie total a besoin d'aide pour inserer menu vertical (html) en JavaScript [ par lhawai1 ] Bonjour a tous,Je suis totalement débutant en la matière et je connais depuis peu le mot "JavaScript". Je suis assomé d'information depuis que j'ai co menu horizontal avec image + compatibilité ie6 [ par misskis ] Bonjour,Help me please !!!Je n'arrive pas à trouver de solutions pour mon bug ie6.J'ai créé un menu horizontal avec image mais sur ie6 l'affichage est PB menu dynamique - affichage pas terrible [ par chabgyver ] Bonjour,J'ai placé un menu sur un site que je suis en train de faire, il s'agit d'un menu horizontal dynamique.Voici le code html de ce dernier :<br Onglet en surbrillance depuis un passage de souris sur une image [ par phelsuma ] Bonjour,Je viens à vous pour vous demander une astuce (en javascript, ou non). J'explique mon cas :J'ai un menu (réalisé en CSS) avec deux petits ongl SOS - menu CSS [ par kristale ] Je suis complétement coincée!!!!!!J'ai fait un petit menu css et javascript, mais le relover de mon "menu1", "menu 2", menu 3" ne fontionne pas. J'aim menu déroulant css [ par poucinette51 ] Bonjour, voilà j'ai créé un menu déroulant en css, mais n'étant encore pas trop expérimentée en css, je bloque sur un truc! En fait je voudrai que lor Conflit OnMouseOut et OnClick [ par rehtakulveets ] Bonjour à tous. Je sais que le sujet a déjà été traité mais mon problème est un peu différent et je n'arrive pas à m'en sortir. J'ai récupéré un code PB de cohésion entre un fond et son interface, ne s'alignent pas de la même façon. [ par chabgyver ] Bonsoir,J'ai décidé de refaire le design de mon site : http://balistiq.frJ'ai intégrer un design dans un template en php, ça n'a pas été simple mais j


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales