javascript - 使用 ui-router 和 Angularjs 自动滚动到 TOP

标签 javascript angularjs angular-ui-router

我已经阅读了很多与此相关的不同问题,但给出的解决方案似乎都不适合我的用例。我开始只是将 target="_top"放在我的所有链接上,但这实际上迫使我的应用程序重新加载,但这是行不通的。我还看到有人说他们使用 autoscroll="true" 但这似乎只有在我的 ui-view 中才有效。

问题在于,在我的 index.html 文件中,我修复了第一个 ui-view 上方的导航和其他静态元素。这意味着当我转到其他页面时,当页面加载经过这些元素时,我会失去导航。我也试过把它放在 body 上:

<body autoscroll="true">
</body>

这似乎也没有做任何事情。所以问题是,如何确保新页面(来自 ui-router 的新路由更改)导致从页面顶部开始?谢谢!

最佳答案

如果您希望它始终滚动到 0 跨浏览器,请不要使用自动滚动。只需将此放在您的运行 block 中:

$rootScope.$on('$stateChangeSuccess', function() {
   document.body.scrollTop = document.documentElement.scrollTop = 0;
});

关于javascript - 使用 ui-router 和 Angularjs 自动滚动到 TOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444418/

相关文章:

javascript - 使用键空白值过滤对象的 JavaScript 数组

javascript - 如何在父 div 中使用 y-overflow-scroll 调整 div?

php - 是否可以使用 PHP 或 JavaScript 从用户处获取剪贴板数据?

angularjs - (angularjs-google-maps) ng-click 内部标记

angularjs - Angular ui 路由器的动态参数

javascript - 在 Angular 1.4 中,在 Controller 内,我可以插入 "events"在 $http 请求之前和成功/错误之后执行吗?

angularjs - Angularjs 指令隔离范围不起作用

javascript - Typescript、Browserify 和 angularjs 超出两个文件示例

javascript - Angularjs ui路由问题

javascript - 无法删除 ui-gmap-google-map 中的选定多边形