Help!!! problème de centrage menu

tipi75 Messages postés 723 Statut Membre -  
jona303 Messages postés 390 Statut Membre -
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 390 Statut Membre 28
 
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 723 Statut Membre 27
 
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 390 Statut Membre 28
 
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 723 Statut Membre 27
 
ç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 390 Statut Membre 28
 
oui oui certain.. ^^

ta console d'erreurs te dit quoi ?? (option->console d'erreur dans firefox)
0
jona303 Messages postés 390 Statut Membre 28
 
et au fait tu appelles quand ton fichier jquery??
il faut l'appeller avant ta fonction $(document).ready évidemment..
0
tipi75 Messages postés 723 Statut Membre 27
 
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 390 Statut Membre 28
 
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 723 Statut Membre 27
 
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 723 Statut Membre 27
 
Est ce que tu comprends mon message d'erreur (console d'erreur)?

Merci d'avance
0
tipi75 Messages postés 723 Statut Membre 27
 
pfff, je n'y arrive pas!!!!!
0
jona303 Messages postés 390 Statut Membre 28
 
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 723 Statut Membre 27
 
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 390 Statut Membre 28
 
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 390 Statut Membre 28
 
Sinon, tu sais pas le mettre online quelque part ?? que je puisse regarder en live ?
0
tipi75 Messages postés 723 Statut Membre 27
 
Je ne sais pas le mettre online, j'aimerai bien mais comment faire???

Merci
0
tipi75 Messages postés 723 Statut Membre 27
 
C'est bizarre parce que: alert("DEBUG"+$('.sm').width()); ne marche pas????
0
jona303 Messages postés 390 Statut Membre 28
 
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 723 Statut Membre 27
 
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 723 Statut Membre 27
 
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 723 Statut Membre 27
 
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