Skip to main content

jQuery Menu


I was just surfing stackoverflow and found a question about Navigation Menu. Just picked the solution from there and modified a bit to get a sleek one around.

And here is the recipe:

  1. Create a Place Holder Div for the navigation menu. Now add some divs(Menu Items) to this container. 
  2. This div will work as container for the Main Menu and Submenu under it. 
  3. Now Add a paragraph and a UL - LI structure under each of Menu Item Div created in last step.
  4. We can add some a-tags in LIs to work as a link.
  5. I have added some simple css style to get it noticeable. You can apply yours to make it handsome.


Thats all to do with HTML.


       


 



Ok so now we just have to add some jQuery that will Do some animation for our menu. We are using all around 3(of these 5) very simple methods of jQuery:
  1. .mouseenter() : It triggered when you mouse enters an element bound with this method.
  2. .mouseleave() : It triggered when you mouse enters an element bound with this method.
  3. .slideup('slow/fast/time in ms') : It hides an element with a effect of sliding it up.
  4. .slidedown('slow/fast/time in ms') : It shows an element with a effect of sliding it down.
  5. .slideToggle('slow/fast/time in ms') : It will toggle/change the state in between up/down.
we have to set just two things,
  1. Whenever someone hover the menu show the the submenu that is combination of .mouseenter() + .slidedown()
  2. And when it hover-out hide submenu that is combination of .mouseleave() + .slideup()
Oh forget to write,we are binding these jQuery methods on html elements on DOM ready(No wonder you know jQuery Ready event). Here is the jQuery code looks like :
$(document).ready(function() {
    $('.selector').mouseenter(function (){
        $(this).find('> ul').slideToggle('slow');
    });
    $('.selector').mouseleave(function (){
    $(this).find('> ul').slideToggle('slow');
    });
});




Here is fiddle demo:


Comments

Popular posts from this blog