2011-03-23 2 views
0

J'essaie de créer une barre de menu en utilisant jquery. Je suis en utilisant le code suivant,jquery animation dans la barre de menu

<div class="menu"> 
<table align="center"> 

<tr> 
<td class="menu_item" style="background:green;" > 
<a style="color: white;" href="index.php?view=Index">Home</a> 
</td> 
<td class="menu_item" style="background:blue;" > 
<a style="color: white;" href="index.php?view=Services"> Service </a> 
</td> 
<td class="menu_item" style="background:red;" > 
<a style="color: white;" href="index.php?view=About"> About </a> 
</td> 
<td class="menu_item" style="background:yellow;" > 
<a style="color: white;" href="index.php?view=Download"> Download</a> 
</td> 
<td class="menu_item" style="background:pink;" > 
<a style="color: white;" href="index.php?view=Contact"> Contact</a> 
</td> 
</tr> 
</table> 
</div> 
<hr> 

<script> 
$(document).ready(function(){ 
    //When mouse rolls over 
    $(".menu_item").mouseover(function(){ 

     $(this).slideUp(1000, method, callback}); 

    //When mouse is removed 
    $(".menu_item").mouseout(function(){ 
     $(this).slideUp(1000, method, callback}); 

}); 
</script> 

Les fonctions et de la souris sur mouseover travaillent, j'ai vérifié ceux qui utilisent des boîtes d'alerte, mais aucun changement qui arrive aux articles ...? Où vais-je mal?

Répondre

2

Eh bien, vous avez quelques erreurs de syntaxe:

$(document).ready(function(){ 
    //When mouse rolls over 
    $(".menu_item").mouseover(function(){ 
     $(this).slideUp(1000); 
    }); 

    //When mouse is removed 
    $(".menu_item").mouseout(function(){ 
     $(this).slideUp(1000); 
    }); 
}); 

Je ne suis pas sûr, cependant, ce que vous essayez d'atteindre ici. C'est-à-dire, le works ci-dessus mais je ne suis pas sûr qu'il fait vraiment ce que vous avez l'intention.

+0

Je n'ai même pas vu les erreurs de syntaxe, juste distrait par les tables pour créer un menu, je pensais qu'une rangée de td avait toujours le s ame hauteur, donc l'effet slideUp n'aurait aucun résultat. –

+0

@Han Dijk Mais vous avez raison. Cette approche est fondamentalement fausse :) – jensgram

2

Vous ne vous trompez pas en utilisant des tables pour une liste. Utilisez une liste contenant des éléments de liste.

<ul> 
    <li class="menu_item"><a href="http://..."></a></li> 
    <li class="menu_item"><a href="http://..."></a></li> 
    <li class="menu_item"><a href="http://..."></a></li> 
    ... 
</ul> 

et flotter les éléments de liste à gauche

ul li.menu_item { 
    display: block; 
    float: left; 
} 

Votre animation devrait fonctionner maintenant, vous pouvez également utiliser la fonction de vol stationnaire jquery

$(".menu_item").hover(over, out); 

pour le rendre un peu plus facile

+0

en utilisant le flotteur: propriété gauche n'est jamais une bonne idée ... – user434885

+0

IMHO float-left est une méthode largement acceptée pour flotter les choses à gauche, je l'utilise au moins une fois sur chaque site que je construis, pas problèmes. Vous pouvez également utiliser display: inline-block ;, mais cela vous donnera des problèmes d'espace. –