Changer de vol stationnaire pour cliquer?

J’ai récemment mis en place un petit cadre sur mon site Web au bas de la page pour l’agrandir lorsque la souris le survole … C’est le code et tout fonctionne parfaitement.

CSS

#box{ position:absolute; width:300px; height:20px; left: 33%; right: 33%; min-width: 32%; bottom:0; background-color: #353535; } 

javascript

 $('#box').hover(function() { $(this).animate({ height: '220px' }, 150); },function() { $(this).animate({ height: '20px' }, 500); }); 

Mais je suis curieux de savoir comment je changerais ceci pour qu’il s’ouvre et se ferme en un clic plutôt que de laisser la souris le survoler?

Je l’ai édité pour …

 $('#box').click(function() { $(this).animate({ height: '220px' }, 150); },function() { $(this).animate({ height: '20px' }, 500); }); 

Et cela fonctionne pour ouvrir la boîte. Mais je ne peux pas le refermer avec un autre clic.

Si proche et pourtant si loin! : P

cela devrait fonctionner

 $('#box').toggle(function() { $(this).animate({ height: '220px' }, 150); },function() { $(this).animate({ height: '20px' }, 500); }); 

Vous pouvez probablement simplement utiliser le gestionnaire d’événement de bascule au lieu de l’événement click comme suit:

 $('#box').toggle(function() {...}, function() {...}); 

Tu peux faire:

 $('#box').click(function() { if ($(this).is(':visible')) { $(this).hide(); return; } $(this).animate({height: '220px'}, 150); }); 

Sur le clic, il cachera l’élément si visible sinon l’anime.