我已经阅读了很多与此相关的不同问题,但给出的解决方案似乎都不适合我的用例。我开始只是将 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/