web-dev-qa-db-fra.com

Comment faire défiler vers le haut de la page dans AngularJS?

Je veux faire défiler vers le haut de la page après avoir obtenu une réponse à un appel ajax en utilisant angularjs. Fondamentalement, j'affiche des messages d'alerte en haut de la page et je souhaite concentrer le message d'alerte en fonction de la réponse ajax reçue.

Merci

70
Farjad Hasan

Vous pouvez utiliser

_$window.scrollTo(x, y);
_

x est le pixel le long de l'axe horizontal et y le pixel le long de l'axe vertical.

  1. Faites défiler vers le haut

    _$window.scrollTo(0, 0);
    _
  2. Se concentrer sur l'élément

    _$window.scrollTo(0, angular.element('put here your element').offsetTop);   
    _

Example

Mise à jour :

Aussi, vous pouvez utiliser $anchorScroll

Example

152
Alexander T.

Vous pouvez utiliser $anchorScroll .

Il suffit d’injecter _$anchorScroll_ comme dépendance et d’appeler $anchorScroll() chaque fois que vous souhaitez faire défiler vers le haut.

30
Muhammad Reda

Idéalement, nous devrions le faire à partir du contrôleur ou de la directive, conformément à ce qui est applicable. Utilisez $anchorScroll, $location comme injection de dépendance.

Appelez ensuite cette méthode comme

$location.hash('scrollToDivID');
$anchorScroll();

Ici scrollToDivID est l'identifiant où vous voulez faire défiler.

Supposons que vous souhaitiez accéder à un message d’erreur div en tant que

<div id='scrollToDivID'>Your Error Message</div>

Pour plus d'informations s'il vous plaît voir ceci documentation

12

N'oubliez pas que vous pouvez également utiliser du JavaScript pur pour faire face à cette situation, en utilisant:

window.scrollTo(x-coord, y-coord);
3
Ignacio Ara