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

Far*_*san 72 javascript jquery angularjs

我想在使用angularjs获取ajax调用响应后滚动到页面顶部.基本上,我在页面顶部显示警报消息,我想将警报消息作为收到的ajax响应.

谢谢

Ale*_* T. 152

您可以使用

$window.scrollTo(x, y);
Run Code Online (Sandbox Code Playgroud)

其中x是沿水平轴y的像素,是沿垂直轴的像素.

  1. 滚动到顶部

    $window.scrollTo(0, 0);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 专注于元素

    $window.scrollTo(0, angular.element('put here your element').offsetTop);   
    
    Run Code Online (Sandbox Code Playgroud)

Example

更新:

你也可以使用 $anchorScroll

Example

  • 关注元素,`$ window.scrollTo(0,angular.element('put here your element').offset().top);` (6认同)
  • 不要忘记在控制器函数定义中注入 $window 。例如:函数($scope,$rootScope,$location,base_factory,$window) (2认同)

Muh*_*eda 31

你可以用$anchorScroll.

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

  • 请注意,`$anchorScroll` 没有可用的动画(平滑滚动)。 (2认同)

Par*_*osh 12

理想情况下,我们应该根据适用情况从控制器或指令执行此操作.使用$anchorScroll,$location作为依赖注入.

然后将这两个方法称为

$location.hash('scrollToDivID');
$anchorScroll();
Run Code Online (Sandbox Code Playgroud)

scrollToDivID是您要滚动的ID.

假设您要导航到错误消息div as

<div id='scrollToDivID'>Your Error Message</div>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此文档