J'ai un menu composé de 4 images dans une liste non ordonnée, chacune avec du texte dedans (info), initialement caché. Lorsque l'utilisateur clique sur l'une de ces images, le texte d'information correspondant est affiché ou masqué avec une fonction d'animation jQuery.Modifier dynamiquement la position du pied de page avec jQuery après le changement de contenu
J'ai un pied de page que j'avais l'intention de toujours être 40px vers le haut à partir du bas de la page. Le problème est le suivant: lorsque le menu est cliqué et qu'une partie du texte d'information est affichée, cela augmente la hauteur du corps, affichant ainsi la barre de défilement verticale dans la fenêtre du navigateur.
Cependant, le pied de page reste au même endroit, sans tenir compte de la nouvelle hauteur de l'élément de corps.
Comment l'obtenir pour suivre l'animation du menu, se déplaçant vers le haut/bas mais toujours à 40px du bas de la fenêtre du navigateur?
Ce jsFiddle reproduit l'essence du problème: http://jsfiddle.net/bmscmoreira/6r4K9/8/
Mon HTML est comme ceci:
<body>
<div id="menu">
<ul class="accordion">
<li>
<img id="menu-item-1" src="img/menu-item-1.png" alt="1">
</li>
<li class="info">
<p>here goes full text for menu item 1</p>
</li>
<li>
<img id="menu-item-2" src="img/menu-item-2.png" alt="2">
</li>
<li class="info">
<p>here goes full text for menu item 2</p>
</li>
<li>
<img id="menu-item-3" src="img/menu-item-3.png" alt="3">
</li>
<li class="info">
<p>here goes full text for menu item 3</p>
</li>
<li>
<img id="menu-item-4" src="img/menu-item-4.png" alt="4">
</li>
<li class="info">
<p>here goes full text for menu item 4</p>
</li>
</ul>
</div>
<div id="footer">
<p>footer text</p>
</div>
</body>
jQuery fonction d'animation qui affiche ou masque le texte intégral des éléments de menu:
<script type="text/javascript">
$(document).ready(function($) {
$('.accordion > .info').hide();
$('.accordion > li > img').click(function(){
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
$(this).parent().next().slideUp();
} else {
$('.accordion > li > img').removeClass('selected');
$(this).addClass('selected');
$('.accordion > .info').slideUp();
$(this).parent().next().slideDown();
}
return false;
});
});
</script>
CSS:
html {
background-color: #666666;
}
#footer {
position: absolute;
bottom:40px;
}
#menu {
position: relative;
margin-left:55px;
margin-top:75px;
}
Cette question semble trop spécifique. Vous auriez pu essayer d'enquêter sur la cause première et fournir plus de code et d'informations à la question, afin qu'elle puisse s'appliquer à d'autres personnes qui recherchent le même problème que vous. – falsarella
Par ailleurs, placer un code de référence est beaucoup mieux que de placer un lien car il indexe les recherches google et il est permanent (un lien pourrait être brisé à long terme, et dans ce cas, votre question deviendrait également inutile à la base de connaissances). Je vous recommande de lire entièrement l'aide de StackOverflow.Il est situé sur la droite de votre réputation et des badges. – falsarella
J'ai édité cette question et j'ai essayé de la faire mieux expliquer. Veuillez envisager de réviser l'utilité de cette question. Merci. – BMM