Faites défiler jusqu'à element on cliquez dans Angular 4
Je veux être en mesure de faire défiler jusqu'à une cible lorsqu'un bouton est enfoncé. Je pensais à quelque chose comme ça.
<button (click)="scroll(#target)">Button</button>
Et dans mon élément.ts de la méthode.
scroll(element) {
window.scrollTo(element.yPosition)
}
Je sais que le code ci-dessus n'est pas valide, mais juste pour montrer ce que je pensais. Je viens de commencer à apprendre Angulaire 4 avec aucune expérience préalable Angulaire. J'ai été la recherche autour de quelque chose comme ça, mais tous les exemples sont en AngularJs qui diffère beaucoup Angulaire 4
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous pourriez le faire comme ceci:
et puis dans votre composante:
Peu tard pour cette partie, mais j'ai écrit un plugin pour Angulaires 4+ qui fait juste cela. Il couvre les autres questions que vous pourriez tomber sur, comme le Rendu Côté Serveur. Vous pouvez également animer le défilement de vos goûts. La divulgation complète, je suis l'auteur.
NPM: @nicky-lenaers/ngx-faites défiler jusqu'à
GitHub: @nicky-lenaers/ngx-faites défiler jusqu'à
Espère que cela vous aide!
Il est en fait un pur javascript façon d'y parvenir sans l'aide de
setTimeout
ourequestAnimationFrame
ou jQuery.En bref, trouver l'élément dans la scrollView que vous voulez faire défiler et à l'utilisation
scrollIntoView
.el.scrollIntoView({behavior:"smooth"});
Ici est un plunkr.
voici comment je l'ai fait à l'aide angulaire 4.
Modèle
ajouter cette fonction à la Composante.
Jon a le droit de répondre et cela fonctionne dans mon angulaire 5 et 6 projets.
Si je voulais cliquez pour faire défiler en continu à partir de barre de navigation en bas de page:
Parce que je voulais revenir en arrière pour la tête, le pied de page, j'ai créé un service que cette fonction se trouve dans et injecté dans la barre de navigation et le pied de page de composants et de passé en "en-tête" ou "pied de page" où nécessaire. n'oubliez pas de donner le composant déclarations de la classe des noms utilisés:
Vous pouvez le faire en utilisant jquery :
ts code :
code html :
Appliquer ce sur les éléments que vous voulez faire défiler :
Ici est un stackblitz de l'échantillon.
J'ai fait quelque chose comme ce que vous êtes en posant simplement par l'utilisation de jQuery pour trouver l'élément (par exemple, document.getElementById(...)) et en utilisant le .focus() de l'appel.