如何在 AngularJS 中滚动到页面顶部?

我想滚动到页面的顶部后,得到一个 ajax 调用使用 angularjs 响应。基本上,我在页面顶部显示警报消息,并且我想将警报消息作为 Ajax 响应的焦点。

谢谢

121603 次浏览

你可以用

$window.scrollTo(x, y);

其中 x是水平轴上的像素,y是垂直轴上的像素。

  1. 滚动到顶部

    $window.scrollTo(0, 0);
    
  2. Focus on element

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

Example

Update:

Also you can use $anchorScroll

Example

你可以使用 $anchorScroll

只需注入 $anchorScroll作为一个依赖项,并在需要滚动到顶部时调用 $anchorScroll()

用途: $anchorScroll();

拥有 $anchorScroll资产

理想情况下,我们应该根据适用的控制器或指令进行操作。 以 $anchorScroll$location为依赖注入。

然后将这两个方法调用为

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

这里的 scrollToDivID是要滚动的 id。

假设您希望导航到错误消息 div,如下所示

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

有关详细信息,请参阅此 文件

不要忘记你也可以使用纯 JavaScript 来处理这种情况,使用:

window.scrollTo(x-coord, y-coord);
 $scope.$on('$stateChangeSuccess', function () {
document.body.scrollTop = document.documentElement.scrollTop = 0;
});