Je souhaite utiliser la position de la propriété CSS: fixe pour fixer la position d'un élément mais en même temps empêcher que l'élément soit positionné sur mon pied de page l'utilisateur fait défiler vers le bas de la page. Y a-t-il un moyen d'empêcher un élément de s'afficher de cette manière?Empêcher l'affichage de l'élément au-dessus du pied de page lors de l'utilisation: fixe
Répondre
Si vous voulez que l'élément à fixer parfois, mais pas d'autres, vous devez utiliser JavaScript pour ajouter/supprimer position:fixed
tout d'abord mis l'élément sans position:fixed
pour qu'il apparaisse dans la page au-dessus du pied de page où vous le voulez une fois défilé vers le bas.
Définissez ensuite une classe css que lorsqu'il est ajouté à l'élément fixe sa position, quelque chose comme:
div#sometimesfixed.fixed
{
position:fixed;
bottom: 0px;
}
Le code suivant utilise jquery, détecte la position de défilement sur la page, et ajoute/supprime la classe fixed
en conséquence:
$(window).scroll(function (event) {
var windowTop = $(this).scrollTop();
if (windowTop >= $("#footer").offset().top) {
$("div#sometimesfixed").addClass("fixed");
} else {
$("div#sometimesfixed").removeClass("fixed");
}
});
Ajoutez margin-bottom
supplémentaire à votre pied de page afin que l'utilisateur puisse défiler un peu vers le bas pour que votre pied de page puisse effacer l'élément fixe.
Tant que tous les éléments sont positionnés (absolus ou relatifs), vous pouvez utiliser l'attribut z-index
. La valeur par défaut est 0, donc donnez à votre pied de page une valeur plus élevée et il apparaîtra au-dessus de l'autre contenu.
Excuses, je n'ai pas bien posé ma question. En fait, je veux que l'élément s'arrête au-dessus du pied de page plutôt que de disparaître derrière le pied de page. – Alex
je suis tombé sur cette même question récemment. Vous pouvez obtenir une solution en tirant parti de la propriété position
de l'élément avec jQuery, en basculant entre la valeur par défaut (static
pour divs
), fixed
et absolute
. Vous aurez également besoin d'un élément de conteneur pour votre élément fixe. Enfin, pour éviter que l'élément fixe ne passe au-dessus du pied de page, cet élément conteneur ne peut pas être le parent du pied de page. La partie javascript consiste à calculer la distance en pixels entre votre élément fixe et le haut du document, et à le comparer à la position verticale actuelle de la barre de défilement par rapport à l'objet fenêtre (le nombre de pixels au-dessus est caché) à partir de la zone visible de la page) chaque fois que l'utilisateur fait défiler la page. Lorsque, en faisant défiler vers le bas, l'élément fixe est sur le point de disparaître au-dessus, nous changeons sa position pour fixer et coller sur le dessus de la page. Cela provoque le déplacement de l'élément fixe sur le pied de page lorsque nous naviguons vers le bas, en particulier si la fenêtre du navigateur est petite. Par conséquent, nous allons calculer la distance en pixels du pied de page depuis le haut du document et le comparer avec la hauteur de l'élément fixe plus la position verticale de la barre de défilement: lorsque l'élément fixe est sur le point de passer, va changer sa position à l'absolu et coller au fond, juste au-dessus du pied de page.
Voici un exemple générique.
La structure HTML:
<div id="content">
<div id="leftcolumn">
<div class="fixed-element">
This is fixed
</div>
</div>
<div id="rightcolumn">Main content here</div>
<div id="footer"> The footer </div>
</div>
Le CSS:
#leftcolumn {
position: relative;
}
.fixed-element {
width: 180px;
}
.fixed-element.fixed {
position: fixed;
top: 20px;
}
.fixed-element.bottom {
position: absolute;
bottom: 356px; /* Height of the footer element, plus some extra pixels if needed */
}
La JS:
// Position of fixed element from top of the document
var fixedElementOffset = $('.fixed-element').offset().top;
// Position of footer element from top of the document.
// You can add extra distance from the bottom if needed,
// must match with the bottom property in CSS
var footerOffset = $('#footer').offset().top - 36;
var fixedElementHeight = $('.fixed-element').height();
// Check every time the user scrolls
$(window).scroll(function (event) {
// Y position of the vertical scrollbar
var y = $(this).scrollTop();
if (y >= fixedElementOffset && (y + fixedElementHeight) < footerOffset) {
$('.fixed-element').addClass('fixed');
$('.fixed-element').removeClass('bottom');
}
else if (y >= fixedElementOffset && (y + fixedElementHeight) >= footerOffset) {
$('.fixed-element').removeClass('fixed');
$('.fixed-element').addClass('bottom');
}
else {
$('.fixed-element').removeClass('fixed bottom');
}
});
- 1. Pied de page fixe obscure firefox search match
- 2. en-tête et pied de page fixe, contenu défilable
- 3. En-tête fixe et pied de page pour GridView
- 4. UITableView Ligne aléatoire au pied de section lors du retour du pied de page de taille appropriée
- 5. Fixation du pied de page au bas du navigateur
- 6. Gestion du contenu du pied de page de Magento
- 7. 100% de hauteur avec pied de page fixe et Google Map
- 8. Pied de page collant avec redimensionnement de l'image attaché au pied de page
- 9. Suppression du pied de page du fichier plat SSIS
- 10. Comment puis-je obtenir un pied de page fixe comme la conception de l'application facebook?
- 11. Problème de maintien du pied de page CSS en bas
- 12. Personnalisation de l'en-tête et du pied de page
- 13. Supprimer le nombre de diapositives du pied de page Beamer
- 14. Pied de page flottant CSS
- 15. N2CMS pied de page problème
- 16. PhPBB3 pied de page d'édition
- 17. Java iText Pied de page
- 18. Défilement de page indésirable lors de la modification du contenu de l'élément fixe
- 19. Supprimer l'en-tête et le pied de page du navigateur par défaut lors de l'impression HTML
- 20. : problème du dernier enfant lors de l'ajout d'un pied de page après une section
- 21. PHP: "Fonction de pied de page"?
- 22. Pied de page de type Tumblr
- 23. Position fixe sur un navigateur mobile pour le pied de page
- 24. pdf en-tête pied de page annexe
- 25. Signaler le pied de page sur ReportViewer
- 26. modifier le pied de page dans joomla1.5
- 27. iTextSharp Création d'un pied de page Page # de #
- 28. Page X de Y dans LaTeX Pied de page
- 29. Chaîne de format de données de pied de page Gridview
- 30. Problème avec le pied de page css
Je ne pense pas que je l'ai expliqué très bien! Ce que je veux dire, c'est que lorsque vous faites défiler la page, l'élément ne devrait pas aller plus bas que le pied de page. Il devrait disparaître derrière le pied de page, mais rester fixe à propos du pied de page si vous faites défiler cette page. – Alex
Ainsi, vous voulez positionner l'élément quelque part sur l'écran, mais lorsque vous faites défiler vers le bas et que le pied de page apparaît, vous voulez qu'il reste au-dessus du pied de page, n'est-ce pas? Et le pied de page est assez haut (et l'élément fixe assez bas) pour les deux d'entrer en contact les uns avec les autres? – Alec
Ha ça n'a pas aidé que j'ai fait une faute de frappe. "Il NE DEVRAIT PAS disparaître derrière le pied", c'est ce que je voulais dire bien sûr. Ce que vous avez écrit est exactement exact. Il doit être positionné: fixe jusqu'à ce que le pied de page apparaisse. Avez-vous des idées sur ce que ce genre de comportement pourrait être appelé? J'ai essayé de chercher Google, mais rien n'a été fait. – Alex