Animer faites défiler jusqu'à l'identifiant (ID) de chargement de la page
Im tring pour animer le faites défiler jusqu'à un ID particulier au chargement de la page. J'ai fait beaucoup de recherches et suis tombé sur ceci:
$("html, body").animate({ scrollTop: $('#title1').height() }, 1000);
mais cela semble commencer à partir de l'ID et de les animer en haut de la page?
Le code HTML (qui est à mi-chemin en bas de la page) est tout simplement:
<h2 id="title1">Title here</h2>
- Ce n'est pas une réponse, mais je vous recommande fortement d'Ariel Flesler du "scrollTo" plugin; il a beaucoup de fonctionnalités pour l'affichage sur une page, et quelques extensions pour le plugin pour les cas courants (par exemple, vous pourriez trouver son "LocalScroll" plugin utile pour le défilement d'un lien href si c'est sur la même page). Vous pouvez obtenir le plugin ici: flesler.blogspot.com/2007/10/jqueryscrollto.html
- L'OP est vieux, mais je vais partager ce post pour d'autres venant de SE. Voici un article qui part d'une fonction simple de résoudre le problème: smartik.ws/2015/01/...
Vous devez vous connecter pour publier un commentaire.
Vous êtes seulement de défilement de la hauteur de votre élément. offset() renvoie les coordonnées d'un élément par rapport à un document, et
top
param va vous donner de l'élément de distance en pixels le long de l'axe des y:Et vous pouvez également ajouter un délai à elle:
scroll
. Avec cela à l'esprit, vous devez ajouter l'actuelle position de défilement de labody
à laoffset().top
position de l'élément que nous voulons en vue, Le total obtenu est la valeur que nous voulons faire défiler jusqu'à.$('html, body').animate({ scrollTop: ($('html, body').scrollTop() + $('#title1').offset().top) }, 1000);
body
ethtml
depuisoffset().top
va vous donner le document en haut de décalage, pas l'intention de défilement parent.overflow-y: scroll
ensemble. Cela fonctionne parfaitement tant que vous soustraire la distance entre le haut de la page et la div.Pur javascript solution avec scrollIntoView() fonction:
JS:
HTML:
P. S. "lisse" paramètre fonctionne maintenant à partir de Chrome 61 julien_c mentionné dans les commentaires.
jquery-animer des-corps-pour-tous-les navigateurs.
Il y a un plugin jquery pour cela. Elle fait défiler le document pour un élément spécifique, de sorte qu'il serait parfaitement dans le milieu de la fenêtre d'affichage. Il prend également en charge l'animation de levées, de sorte que le défilement de l'effet aurait l'air super lisse. Vérifier ce lien.
Dans votre cas, le code est
essayer avec le code suivant. rendre les éléments avec un nom de classe page de défilement de la et de garder le nom de l'id de
href
de liens correspondantsde Défilement simple, l'utilisation de style suivantes
height: 200px;
overflow: scroll;
et l'utilisation de cette classe de style qui div ou la section que vous voulez montrer de défilement