【发布时间】:2015-05-06 10:38:41
【问题描述】:
我想在使用 angularjs 获得 ajax 调用响应后滚动到页面顶部。基本上,我在页面顶部显示警报消息,并且我希望将警报消息集中在收到的 ajax 响应中。
谢谢
【问题讨论】:
标签: javascript jquery angularjs
我想在使用 angularjs 获得 ajax 调用响应后滚动到页面顶部。基本上,我在页面顶部显示警报消息,并且我希望将警报消息集中在收到的 ajax 响应中。
谢谢
【问题讨论】:
标签: javascript jquery angularjs
你可以使用
$window.scrollTo(x, y);
其中x 是沿水平轴的像素,y 是沿垂直轴的像素。
滚动到顶部
$window.scrollTo(0, 0);
关注元素
$window.scrollTo(0, angular.element('put here your element').offsetTop);
更新:
你也可以使用$anchorScroll
【讨论】:
$window.scrollTo(0, angular.element('put here your element').offset().top);
您可以使用$anchorScroll。
只需注入 $anchorScroll 作为依赖项,并在您想要滚动到顶部时调用 $anchorScroll()。
【讨论】:
$anchorScroll 没有可用的动画(平滑滚动)。
使用:$anchorScroll();
带有$anchorScroll 属性
【讨论】:
理想情况下,我们应该根据适用的情况从控制器或指令中执行此操作。
使用$anchorScroll、$location作为依赖注入。
然后调用这两个方法为
$location.hash('scrollToDivID');
$anchorScroll();
这里scrollToDivID是你要滚动的id。
假设你想导航到一个错误信息 div 为
<div id='scrollToDivID'>Your Error Message</div>
更多信息请看documentation
【讨论】:
别忘了你也可以使用纯 JavaScript 来处理这种情况,使用:
window.scrollTo(x-coord, y-coord);
【讨论】:
$scope.$on('$stateChangeSuccess', function () {
document.body.scrollTop = document.documentElement.scrollTop = 0;
});
【讨论】: