Help!!! problème de centrage menu

Fermé
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 - 11 janv. 2010 à 21:39
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 - 19 janv. 2010 à 16:39
Bonsoir.

Je n'arrive pas centrer mon menu animé (jquery) dans la div ("imageMenu").

Voici le code php (pages dynamiques):


$contenu .= '<div id="imageMenu">';
$contenu .= '<ul>';
$contenu .= '<div id="le_menu">';
$contenu .= '<li class="imageMenu_opt1"><a href="">Bague</a></li>';
$contenu .= '<li class="imageMenu_opt2"><a href="">Bracelet</a></li>';
$contenu .= '<li class="imageMenu_opt3"><a href="">Chapelet</a></li>';
$contenu .= '<li class="imageMenu_opt4"><a href="">Collier</a></li>';
$contenu .= '<li class="imageMenu_opt5"><a href="">Manchette</a></li>';
$contenu .= '</div>';
$contenu .= '</ul>';
$contenu .= '</div>';



Voici la partie css:

#imageMenu {
position: relative;
width: 1024px;
height: 301px;
overflow: hidden;
border: 2px solid grey;
}

#imageMenu ul {
display: block;
margin: 0 auto;
width: 512px;
height: 301px;
list-style: none;
border: 2px solid orange;
text-align: center;
}

#imageMenu ul li {
display: block;
float: left;
margin-left: auto;
margin-right: auto;
}

/*#le_menu{
position: relative;
width: 1024px;
height: 301px;
margin-left: auto;
margin-right: auto;
text-align: center;
}*/

#imageMenu ul li a {
text-indent: -150px;
background:#FFFFFF none repeats;
cursor:pointer;
display:block;
overflow:hidden;
width:80px;
height: 301px;
}

/*#le_menu{
width: 1024px;
left: 50%;
margin-left: 270px;
display: block;
margin: 0 auto;
width: 512px;
height: 301px;
}*/

#imageMenu ul li.imageMenu_opt1 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bague.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt2 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bracelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt3 a {
/*background: #ccc;*/
background: url(../images/type_bijoux/chapelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt4 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/collier.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt5 a {
/*background: #ccc;*/
background: url(../images/type_bijoux/manchette.png) no-repeat;
}

.clear {
clear: both;
}



Merci pour votre aide.
A voir également:

42 réponses

jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
15 janv. 2010 à 21:42
En considérant que ta div 'le_menu' fait 1024,et que tu met ton ul dans ta div 'le_menu' et pas l'inverse.. ;)


document.ready(function({
var largeur_ul=$('#le_menu ul').width();

$('#le_menu ul').css({marginLeft:(1024-largeur_ul)/2+"px"});



});

et tu peux virer le width de ton ul, comme ça pas de problème si tu rajoutes un li.. ;)
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
15 janv. 2010 à 22:01
pfff, ça ne marche pas.

Tiens regarde mon code:

Css

#imageMenu  {
	position:relative;	
	width: 1024px;
	height:301px;	
	padding: 0px;
	overflow: hidden;
	border: 2px solid orange;
}

#imageMenu  ul {
	position: relative;
	width: 1024px;
	height: 301px;
	list-style: none;
	margin: 0px;
	padding: 0px;
	display: block;
	/*padding-left: 250px;*/
}
	
#imageMenu ul li {
	float: left;
	/*width: 95px;
	display: block;
	overflow: hidden;*/
}

#imageMenu ul li a {
	text-indent: -150px;
	background:#fff none repeat;
	border-right: 2px solid #fff;
	cursor:pointer;
	display:block;
	overflow: hidden;
	width:80px;
	height: 301px;
}



#imageMenu ul li.imageMenu_opt1 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bague.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt2 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bracelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt3 a {
/*background: #ccc;*/
background: url(../images/type_bijoux/chapelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt4 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/collier.png) 
no-repeat;
}



Html

$contenu .= '<div id="imageMenu">';
$contenu .= '<ul>';
$contenu .= '<li class="imageMenu_opt1"><a href="">Bague</a></li>';
$contenu .= '<li class="imageMenu_opt2"><a href="">Bracelet</a></li>';
$contenu .= '<li class="imageMenu_opt3"><a href="">Chapelet</a></li>';
$contenu .= '<li class="imageMenu_opt4"><a href="">Collier</a></li>';
$contenu .= '</ul>';
$contenu .= '</div>';



jquery

<script type="text/javascript">
document.ready(function({
var largeur_ul=$('#imageMenu ul').width();

$('#imageMenu ul').css({margin-left:(1024-largeur_ul)/2+"px"});
});
</script>



Merci de ton aide.
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
15 janv. 2010 à 22:08
oups j'ai été un peu vite:

$(document).ready

et pas

document.ready,..

sorry, si ca marche pas fait des alerts un peu partout.. pour voir jusque ou ça va.. ;)
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
15 janv. 2010 à 22:20
ça ne marche pas???

Tu es sur que les alerts marche sur le jquery?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
15 janv. 2010 à 22:22
oui oui certain.. ^^

ta console d'erreurs te dit quoi ?? (option->console d'erreur dans firefox)
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
15 janv. 2010 à 22:24
et au fait tu appelles quand ton fichier jquery??
il faut l'appeller avant ta fonction $(document).ready évidemment..
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
15 janv. 2010 à 22:36
Ma console d'erreur me dit cela:

missing: after property id

la ligne pointée est:
var largeur_ul=$('#imageMenu ul').width();


Que veux tu dires quand tu dis avant la fonction $(document).ready....

Moi, j'ai placé le script javascript dans ma page html, dans le <head></head> puis le script se lance lors du chargement de la page.

Voilà....
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
16 janv. 2010 à 11:34
hum,.. as tu installé jquery ??

https://jquery.com/

tu dois appeller le fichier jquery, avant de faire tes scripts..

<script type="text/javascript" src="/js/jquery-1.3.1.min.js"></script>
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
16 janv. 2010 à 14:11
Bonjour Jona303,

J'appelle ce fichier:

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

Donc je ne devrais pas avoir de soucis, surtout que j'utilise le jquery pour autre chose (animations et effets).

Merci pour ton aide.
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
16 janv. 2010 à 14:19
Est ce que tu comprends mon message d'erreur (console d'erreur)?

Merci d'avance
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
16 janv. 2010 à 18:35
pfff, je n'y arrive pas!!!!!
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
16 janv. 2010 à 22:03
humm,..
vraiment je ne vois pas ..
j'ai été vérifier un code similaire que j'ai fait pour un site et ça donne :

var large = $('#menu').width();
	$('#second_nav').width(large);



sans avoir d'erreurs...

et si tu vires le tout et que tu fais un alert de $('#imageMenu ul').width();

ou de faire $('#imageMenu>ul').width();
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
16 janv. 2010 à 22:30
je n'arrive pas à utiliser alert:

code js:


<script type="text/javascript">
document.ready(function({
var largeur_ul=$('.sm').width();
alert($('.sm').width()); 

$('.sm').css({marginLeft:(1024-largeur_ul)/2+"px"});
});
</script>



Merci de ton aide
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
17 janv. 2010 à 11:11
Si ton erruer est appellée la : var largeur_ul=$('.sm').width();
Ce qui se trouve apres ne sera pas exécuté.

fais un peu


document.ready(function({
//var largeur_ul=$('.sm').width();
alert("DEBUG"+$('.sm').width()); 

//$('.sm').css({marginLeft:(1024-largeur_ul)/2+"px"});
});


0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
17 janv. 2010 à 11:27
Sinon, tu sais pas le mettre online quelque part ?? que je puisse regarder en live ?
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
17 janv. 2010 à 20:10
Je ne sais pas le mettre online, j'aimerai bien mais comment faire???

Merci
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
17 janv. 2010 à 20:14
C'est bizarre parce que: alert("DEBUG"+$('.sm').width()); ne marche pas????
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
17 janv. 2010 à 20:40
bon je vois en fait que j'ai pas toujours très bien lu tes messages, et que le code avait changé..
genre plus de $,...
commence par
 $('document').ready(function(){
alert('SAlut');

});


si ça marche :


 $('document').ready(function(){
alert( "DEBUG"+$('.sm').width() );

});

...
Si rien ne marche c'est que ton script n'est pas appellé au bon moment... mais le truc DOIT fonctionner !!!
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
17 janv. 2010 à 22:10
Non ça ne marche pas. Je ne comprend pas que cela ne marche pas, je met ton script:

$('document').ready(function(){
alert('SAlut');
});

dans le <head></head> de la page html.
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
17 janv. 2010 à 22:15
en revanche j'ai fais:

<script type="text/javascript">
alert('SAlut');
</script>

et là ça marche.

Donc cela vient de cette ligne: $(document).ready(function()

Merci de ton aide
0
tipi75 Messages postés 680 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 16 avril 2015 27
17 janv. 2010 à 22:28
ah!!!

Je crois que j'ai trouvé mon problème pour l'affichage. En fait, comme j'ai d'autre script en javascript je n'ai pas besoin de mettre $(document).ready(). Don j'ai essayé cette ligne:

alert( "DEBUG"+$('.sm').width() );

Il m'affiche DEBUG: null. Je ne comprend pas qu'il me trouve null alors que j'ai des images d'affichées.

Merci pour ton aide
0