Avatar billede coolcom Nybegynder
26. marts 2009 - 12:03 Der er 4 kommentarer og
1 løsning

jQuery menu animation

Hej

Jeg har en CSS menu som jeg gerne vil have gjort lidt mere interessant med lidt jQuery.

Min HTML er som følgende:

            <ul id="menubar">
                    <li class="main"><a class="trigger" href="#">Home</a></li>
                    <li class="main"><a class="trigger" href="#">One</a>
                        <ul>
                            <li><a href="#">Sub 1.1</a></li>
                            <li><a href="#">Sub 1.2</a></li>
                            <li><a href="#">Sub 1.3</a></li>
                            <li><a href="#">Sub 1.4</a></li>
                        </ul>
                    </li>
                    <li class="main"><a class="trigger" href="#">Two</a>
                        <ul>
                            <li><a href="#">Sub 2.1</a></li>
                            <li><a href="#">Sub 2.2</a></li>
                            <li><a href="#">Sub 2.3</a></li>
                            <li><a href="#">Sub 2.4</a></li>
                            <li><a href="#">Sub 2.5</a></li>
                        </ul>
                    </li>
                </ul>


Min idé er så at hvert undermenu skal "glide ned" i en animation. Altså når man hover over #menubar li, skal den tilsvarende undermenu "glide ned".

Jeg har selv prøvet lidt men uden held:

        $(function() {
            $('#menubar li').hover(function() {
                $('#menubar li ul').slideDown(500);
            });
       
        });

Ved denne løsning ruller alle menupunkter ned når bare man hover over en enkelt.
Avatar billede lolman Nybegynder
26. marts 2009 - 20:19 #1
$(document).ready(function(){
  $("#menubar li ul").hide().parent().hover(function(){
      $(this).find("ul").slideDown(200);
    },function(){
      $(this).find("ul").slideUp(200);
    })
  })
})
Avatar billede lolman Nybegynder
26. marts 2009 - 20:20 #2
det er sker er at hover-functionen både er over & out . så der skal være en function for begge. hvis der kun skal ske noget ved mus over så hedder det. fx. mouseover - og tilsvarerende mouseout
Avatar billede coolcom Nybegynder
27. marts 2009 - 13:32 #3
Det virker ikke.
Jeg tror der er en fejl i koden. Jeg kender ikke meget til jQuery, så jeg kan desværre ikke finde den,men siden melder - udført - men med fejl.
Avatar billede lolman Nybegynder
29. marts 2009 - 23:55 #4
aha... det er mig der har lavet for mange })...


$(document).ready(function(){
  $("#menubar li ul").hide().parent().hover(function(){
    $(this).find("ul").slideDown(200);
  },function(){
    $(this).find("ul").slideUp(200);
  })
})
Avatar billede coolcom Nybegynder
30. marts 2009 - 23:20 #5
Super, så virker det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester