J'ai un élément qui est position: fixe et donc défile avec la page comme je le veux cependant. lorsque l'utilisateur fait défiler vers le haut, je veux que l'élément arrête de défiler à un certain point, par exemple lorsqu'il est à 250 pixels du haut de la page, est-ce possible? Toute aide ou conseil serait utile merci!
J'avais le sentiment que je devrais utiliser jquery pour le faire. J'ai essayé d'obtenir le défilement ou l'emplacement de l'utilisateur, mais je suis vraiment confus, existe-t-il des solutions jquery?
jquery
css
positioning
Louise McComiskey
la source
la source
Réponses:
Voici un plugin jQuery rapide que je viens d'écrire et qui peut faire ce dont vous avez besoin:
Voir l'exemple de travail →
la source
$('window')
ne devrait pas être entre guillemets. Mais merci pour cela, c'était très utile.Voulez-vous dire un peu comme ça?
http://jsfiddle.net/b43hj/
Afficher l'extrait de code
la source
bottom
et cette valeur calculée (décalée de 250) dans le max.Voici un plugin jquery complet qui résout ce problème:
https://github.com/bigspotteddog/ScrollToFixed
La description de ce plugin est la suivante:
Ce plugin est utilisé pour fixer des éléments en haut de la page, si l'élément aurait défilé hors de la vue, verticalement; cependant, il permet à l'élément de continuer à se déplacer vers la gauche ou la droite avec le défilement horizontal.
Étant donné une option marginTop, l'élément arrêtera de se déplacer verticalement vers le haut une fois que le défilement vertical aura atteint la position cible; mais, l'élément se déplacera toujours horizontalement lorsque la page défilera vers la gauche ou la droite. Une fois que la page a fait défiler vers le bas au-delà de la position cible, l'élément sera restauré à sa position d'origine sur la page.
Ce plugin a été testé dans Firefox 3/4, Google Chrome 10/11, Safari 5 et Internet Explorer 8/9.
Utilisation pour votre cas particulier:
la source
Vous pouvez faire ce que James Montagne a fait avec son code dans sa réponse, mais cela le fera scintiller dans Chrome (testé en V19).
Vous pouvez corriger cela si vous mettez "margin-top" au lieu de "top". Je ne sais pas vraiment pourquoi cela fonctionne avec la marge tho.
http://jsbin.com/idacel
la source
Une possible solution CSS UNIQUEMENT peut être obtenue avec
position: sticky;
Le support du navigateur est en fait vraiment bon: https://caniuse.com/#search=position%3A%20sticky
voici un exemple: https://jsfiddle.net/0vcoa43L/7/
la source
ma solution
la source
Dans un projet, j'ai en fait un en-tête fixé au bas de l'écran lors du chargement de la page (c'est une application de dessin donc l'en-tête est en bas pour donner un espace maximal à l'élément de canevas sur une large fenêtre).
J'avais besoin que l'en-tête devienne «absolu» lorsqu'il atteint le pied de page lors du défilement, car je ne veux pas que l'en-tête passe au-dessus du pied de page (la couleur de l'en-tête est la même que la couleur d'arrière-plan du pied de page).
J'ai pris la réponse la plus ancienne ici (éditée par Gearge Millo) et cet extrait de code a fonctionné pour mon cas d'utilisation. Avec un peu de jeu, je l'ai fait fonctionner. Maintenant, le titre fixe se trouve magnifiquement au-dessus du pied de page une fois qu'il atteint le pied de page.
Je pensais juste partager mon cas d'utilisation et comment cela fonctionnait, et dire merci! L'application: http://joefalconer.com/web_projects/drawingapp/index.html
la source
J'ai écrit un article de blog à ce sujet qui présentait cette fonction:
la source
Une solution utilisant Mootools Framework.
http://mootools.net/docs/more/Fx/Fx.Scroll
Obtenez la position (x & y) de l'élément où vous voulez arrêter le défilement en utilisant $ ('myElement'). GetPosition (). X
$ ('myElement'). getPosition (). y
Pour une sorte d'animation de défilement, utilisez:
new Fx.Scroll ('scrollDivId', {offset: {x: 24, y: 432}}). toTop ();
Pour simplement régler le défilement, utilisez immédiatement:
new Fx.Scroll (myElement) .set (x, y);
J'espère que cela t'aides !! :RÉ
la source
J'ai aimé cette solution
mon problème était que je devais gérer un conteneur relatif à la position dans Adobe Muse.
Ma solution:
la source
Juste du code mVChr improvisé
la source
$(this)
et$(window)
dans des variables est que vous n'avez qu'à le faire$this.height()
et ainsi de suite. Au lieu de définir une position supérieure, ne serait-il pas préférable que le plugin stocke la valeur supérieure d'origine et y revienne lors de la définition d'une largeur fixe? Aussi, qu'est-ce que tu veux direJust improvised mVChr code
?J'ai adapté la réponse de @ mVchr et l'ai inversée pour l'utiliser pour le positionnement des publicités collantes: si vous en avez besoin absolument positionné (défilement) jusqu'à ce que l'en-tête indésirable soit hors écran, mais que vous en ayez besoin pour rester fixé / visible à l'écran après cela:
CSS:
la source
J'ai adoré la réponse @james mais je cherchais sa position inverse, c'est-à-dire arrêter la position fixe juste avant le pied de page, voici ce que j'ai trouvé
Alors maintenant, l'élément fixe s'arrêterait juste avant le pied de page. et ne se chevaucheront pas.
la source