Collant la Tête à la suite de défilement vers le bas
J'ai vu ce collant en-tête de ce site:
http://dunked.com/ (qui n'est plus active, voir les archives du site)
Lorsque vous faites défiler vers le bas collants en-tête vient de haut en bas.
J'ai regardé le code, mais il a l'air vraiment compliqué. Je ne comprends ceci:
Normal d'en-tête a été cloné avec JS et lorsque vous faites défiler la page, il anime de haut.
- Désolé, voici le lien: jsfiddle.net/XyVAG
- mis à jour pour inclure la vanille JS solution 🙂
- C'est mon simple article vous aide à créer. kvcodes.com/2017/03/jquery-simple-sticky-header-on-scroll
Vous devez vous connecter pour publier un commentaire.
Voici un début. Fondamentalement, nous copier l'en-tête de la charge, puis de vérifier (à l'aide de
.scrollTop()
ouwindow.scrollY
) à voir lorsque l'utilisateur fait défiler au-delà d'un point (par exemple, 200pixels). Il nous suffit alors de basculer d'une classe (dans ce cas.down
) qui se déplace à l'original en vue.Enfin tout ce que nous devons faire est d'appliquer une
transition: top 0.2s ease-in
à notre clone, de sorte que quand il est dans la.down
état, il se glisse dans la vue. Trempé t-il mieux, mais avec un peu de jeu autour, il est facile de configurerCSS
soit Vanille JS (polyfill nécessaire)
ou jQuery
Plus Récentes Réflexions
Tandis que les réponses ci-dessus, l'OP question d'origine de "Comment Trempé obtenir cet effet?", Je ne recommanderais pas cette approche. Pour commencer, la copie de l'ensemble de la barre de navigation peut être assez coûteux, et il n'y a aucune raison pourquoi nous ne pouvons pas utiliser l'original (avec un peu de travail).
En outre, Paul Irlandais et d'autres, ont écrit à propos de comment animer avec
translate()
est mieux que de l'animation avec destop
. Non seulement est-il plus performant, mais cela signifie également que vous n'avez pas besoin de connaître la taille exacte de votre élément. La solution ci-dessus sera modifiée avec la suite de (Voir JSFiddle):Le seul inconvénient avec l'aide de transformations est que, si prise en charge du navigateur est très bonne, vous voudrez probablement ajouter vendeur préfixé versions pour optimiser la compatibilité.
Ici est un JS fiddle http://jsfiddle.net/ke9kW/1/
Comme le disent les autres, la tête fixe, et de commencer avec display: none
jQuery
où 200 est la hauteur en pixels que vous souhaitez déplacer vers le bas au. L'ajout de la classe ouverte est de nous permettre d'exécuter un elseif au lieu juste de l'autre, de sorte que le code n'est pas inutilement s'exécuter sur tous les scrollevent, enregistrer un ptit peu de mémoire
Ici, c'est tout à fait une liste de plugins jQuery qui aideront à atteindre l'effet similaire: http://jquery-plugins.net/tag/sticky-scroll
scrollToFixed()
est vraiment bonne dans cette liste. fait exactement quel je veux. un en-tête qui reste en place jusqu'à ce que je défilement passé, il l'a collé en haut de la page. très utile!J'ai utilisé jQuery .de défilement() pour suivre l'événement de la barre de défilement de la valeur à l'aide de scrollTop. J'ai ensuite utilisé un conditionnelle afin de déterminer si elle était plus grande que la valeur sur ce que j'ai voulu le remplacer. Dans l'exemple ci-dessous, il était "Résultats". Si la valeur est vraie, alors les résultats de l'étiquette ajouté une classe 'fixedSimilarLabel" et les nouveaux styles ont été prises en compte.
http://codepen.io/franklynroth/pen/pjEzeK
Je suggère l'utilisation de collants js c'est avoir la meilleure option que j'ai vu. rien à faire, juste à cette annonce js sur vous
et l'utilisation de code ci-dessous :
Son repo git: https://github.com/garand/sticky
une solution similaire à l'aide de jquery serait:
Cela transforme l'en-tête dans une position fixe de l'élément immédiatement sur faites défiler jusqu'
Ajouter de l'anti-rebond, pour l'efficacité http://davidwalsh.name/javascript-debounce-function
css:
JS:
Ce n'était pas de travail pour moi dans Firefox.
Nous avons ajouté une condition selon que le code impose le dépassement de capacité au niveau de html. Voir Animer scrollTop ne fonctionne pas sous firefox.
bas de la fenêtre de défilement vers le haut défilement à l'aide de jquery.