2014-05-15 4 views
0

J'apprends jQuery et j'ai besoin de conseils/d'aide pour la création d'un menu déroulant. Jusqu'à présent, je l'ai mis en place où je fais défiler vers le bas et les liens disparaissent et un lien appelé "menu" apparaît.J'ai besoin d'un point de départ dans le menu déroulant

Je voudrais savoir comment faire glisser les liens quand je clique sur le menu .. Je ne sais pas trop comment procéder.

Voici ce que j'ai jusqu'à présent

html

<div class="container"> 

    <header> 
     <nav> 
      <a href="#"> 
      <span class="menu">Menu</span> 
      </a> 

      <ul> 
       <li>link1</li> 
       <li>link2</li> 
       <li>link3</li> 
      </ul> 
     </nav> 
    </header> 

    <div class="blueDiv"> 
    </div> 

    <div class="redDiv"> 
    </div> 

    <div class="greenDiv"> 
    </div> 

</div> 

Javascript

$(window).scroll(function(){ 
    var topScroll = $(this).scrollTop(); 
    if (topScroll >= 3) { 
     $(".menu").show(); 
     $("ul").hide(); 
    } else{ 
     $("span").hide(); 
     $("ul").show(); 
    } 
}) 


$("a").click(function(){ 
    $("nav.ul").slideToggle(); 
}) 

Je ne me dérange pas la liste de facile à utiliser des plug-ins ainsi.

+0

Je ne sais pas ce que vous entendez, vous devez d'abord mentionner un menu déroulant, mais vous semblez essayer de créer un menu qui n'apparaît que lorsque vous faites défiler la page plutôt que de planer dessus. Pouvez-vous clarifier ou donner un exemple de ce que vous essayez de réaliser? – Timmah

+0

Je cherche quelque chose de similaire à cette démo http://codepen.io/engza/pen/ukLgy Ainsi, lorsque vous faites défiler, les liens disparaissent et remplacés par une icône de menu à trois barres. – user2856111

+0

J'ai un jsfiddle mais le javascript ne fonctionne pas là-bas. Je peux poster pour une meilleure explication si je ne suis toujours pas clair. – user2856111

Répondre

0

Vous êtes sur la bonne voie, voici un JS Fiddle qui se développe sur l'exemple fourni par CodePen.

Tout ce que vous aviez besoin d'ajouter était:

$(document).scroll(function(){ 
    $('.navigation').hide(); 
}) 

Alors maintenant, votre script cache le menu lorsque la page se charge:

$(document).ready(function(){ 
    $('.navigation').hide(); 

Ensuite toggles ou le désactiver lorsque l'utilisateur clique dessus.

$('.box').click(function(){ 
     $('.navigation').toggle(); 
     }); 
    }); 

Enfin, il masque le menu lorsque l'utilisateur fait défiler.

$(document).scroll(function(){ 
    $('.navigation').hide(); 
}) 

Si vous voulez snaz il un peu, vous pouvez utiliser slideToggle au lieu de toggle pour cacher et afficher le menu :)

+0

Merci. Donc je l'avais bien, mais je suppose que ça ressemblait à un pépin comme je l'avais mis en place. – user2856111

+0

Je veux que la navigation glisse sous le menu flottant à droite. Pour ce faire, est-ce que je créerais une nouvelle navigation et la garderais cachée jusqu'à ce que le bouton de menu soit cliqué? Ou devrais-je conserver le menu existant et utiliser jQuery et/ou CSS pour le positionner à droite? – user2856111

+0

J'utiliserais CSS pour le positionnement. Si HTML et CSS peuvent faire le travail, inutile de ralentir votre page avec JavaScript à la place. Les animations CSS seront également rendues plus facilement que JS. – Timmah