11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je pose ma question ici après avoir essayé plusieurs techniques en vain.

Mon but est que le menu reste fixé en haut de la page lorsque le défilement vertical atteindra le haut du menu. Cependant je remarque qu'il y a un 'saut' visible et j'aimerais que le changement se fasse en douceur.

Je sais que le saut vient du fait que l'on retire le menu du flux et donc il faut combler ce manque avec un nouvel élément, mais je n'y arrive pas. J'ai essayé avec la méthode clone() mais le menu est cloné à chaque défilement donc le navigateur plante.

Quelqu'un aurait -il une technique?

Le lien jsfiddle: https://jsfiddle.net/ueafctcv/1/

Merci Smiley smile
Modifié par allan00958 (14 Aug 2016 - 23:03)
La position fixed marche mais j'ai toujours ce 'saut' visuel qui me dérange. Il faut bien regarder pour comprendre de quoi je parle.
Bonjour !

Pourquoi ne pas le mettre dès le départ en position : fixed ?

Ce qui me chiffonne, c'est qu'il recouvre le reste du contenu quand il y a scrolling...

Smiley smile
Bonjour !

Pourquoi ne pas le mettre dès le départ en position : fixed ?

Ce qui me chiffonne, c'est qu'il recouvre le reste du contenu quand il y a scrolling...

Smiley smile

*** à supprimer SVP ***
Modifié par Zelena (15 Aug 2016 - 13:50)
Non, je veux le fixer au scroll et supprimer le 'saut' pendant la transition. Beaucoup de sites le font et je veux savoir comment (sans plugins).
Bonjour,

Vous pourriez compenser la hauteur qui vous manque par un .height() :
var accueil = $('#accueil').height('+=52').offset().top;

J'ai fais ça vite fait pour l'idée, le mieux serait de calculer la hauteur du menu lui même.

Mais le plus propre à mon sens serait de démarrer d'emblée en position fixed, comme les autres l'on dit précédemment...