Vous pourriez utiliser simplement du css, en positionnant votre élément comme Correction de :
.fixedElement {
background-color: #c0c0c0;
position:fixed;
top:0;
width:100%;
z-index:100;
}
Edit : L'élément doit avoir une position absolue. Une fois que le décalage de défilement a atteint l'élément, il doit devenir fixe et la position supérieure doit être mise à zéro.
Vous pouvez détecter le décalage de défilement supérieur du document avec la fonction scrollTop fonction :
$(window).scroll(function(e){
var $el = $('.fixedElement');
var isPositionFixed = ($el.css('position') == 'fixed');
if ($(this).scrollTop() > 200 && !isPositionFixed){
$el.css({'position': 'fixed', 'top': '0px'});
}
if ($(this).scrollTop() < 200 && isPositionFixed){
$el.css({'position': 'static', 'top': '0px'});
}
});
Lorsque le décalage de défilement atteint 200, l'élément bâton en haut de la fenêtre du navigateur, car il est placé comme fixe.
6 votes
En juin 2014, le Plugin jQuery Sticky-kit est l'une des options les plus simples, offrant une barrière d'entrée extrêmement basse et de nombreuses fonctionnalités. C'est un bon point de départ si vous cherchez un moyen facile de démarrer rapidement.
2 votes
Des astuces CSS : css-tricks.com/scroll-fix-content
63 votes
Ajout de CSS
position: sticky; top:0;
fonctionne dans la plupart des navigateurs en janvier 2017.26 votes
Putain de merde, ça
position: sticky;
La chose est magique.0 votes
Cela peut être dû à l'écran flexible, lisez ceci : stackoverflow.com/a/66966273/5361964
0 votes
@Colin'tHart omg !!! merci !