2009-06-08 4 views
2

Le code suivant affiche un sous-menu lorsque vous passez la souris sur un élément de menu. Puisque vous utilisez une minuterie, si vous ne sélectionnez pas assez rapidement l'élément du sous-menu, les éléments du sous-menu disparaissent. Je préfère l'afficher en surbrillance et conserver les éléments du sous-menu jusqu'à ce que vous survoliez ou cliquez sur un autre élément du menu principal:jQuery Hover Menu

$ (document) .ready (function() { Nifty ("# menu à », "petit haut transparent"); Nifty ("# outcontent", "fond milieu transparent");

function hideSubMenu() { 
    $("#sub-menu-content").fadeOut('slow'); 
    hideSubMenu.timeout = 0; 
} 

$('#menu a').hover(function() { //start function when any link is clicked 
    if (hideSubMenu.timeout) clearTimeout(hideSubMenu.timeout); 
    hideSubMenu.timeout = 0; 
    $("#sub-menu-content").hide(); 

    var html = '<ul>' + $(this).next('ul.sub-menu').html() + '</ul>&nbsp;'; 
    $("#sub-menu-content").html(html); //show the html inside .content div 
    $("#sub-menu-content").fadeIn('fast'); //animation 
},function(){ 
    hideSubMenu.timeout = setTimeout(hideSubMenu, 800); 
}); //close click(

$('#sub-menu-content').hover(function() { 
    if (hideSubMenu.timeout) clearTimeout(hideSubMenu.timeout); 
    hideSubMenu.timeout = 0; 
},function(){ 
    hideSubMenu.timeout = setTimeout(hideSubMenu, 800); 
}); //close click(
}); //close $(

Pour le voir en action:

http://cruisecontrolledmarketing.com/test/welcome/login utilisateur: Mot de passe membre: rebmem

Merci!

Répondre

7

Plutôt que de pirater quelque chose vous-même, que diriez-vous de vérifier le hoverIntent plugin?

+0

Je vais vérifier. Je n'ai jamais vu ça avant. –

+0

Je le recommande. Nous l'utilisons en production sur des sites tout le temps. Nice et facile à configurer, et devrait faire exactement ce que vous en avez besoin. – ajm

+0

J'essaie de le faire fonctionner. Est-ce que je remplacerais juste les événements de vol stationnaire? ie $ ('# menu a'). hover (function() {deviendrait $ ("# menu a"). hoverIntent (config, function()) { J'ai également trouvé jquery.event.hover-1.0. js - c'est censé être "meilleur" que hoverIntent Je vérifie les deux –

0

J'ai trouvé une page étonnante qui contient presque n'importe quel concept de menu, de menu contextuel, de survol, et qui vaut vraiment le coup avec tout type d'effets que vous pouvez imaginer. J'ai trouvé cela incroyablement utile d'en étendre certains et de faire des menus encore meilleurs.

45 beautiful jQuery Menu plugins and tutorials