javascript - 更改路线不会在新页面中滚动到顶部

标签 javascript angularjs scroll angularjs-routing

我发现了一些不受欢迎的行为,至少对我来说,当路线改变时。 在教程的第 11 步中 http://angular.github.io/angular-phonecat/step-11/app/#/phones 你可以看到手机列表。如果您滚动到底部并单击最新的一个,您会看到滚动不在顶部,而是在中间。

我也在我的一个应用中发现了这个,我想知道如何让它滚动到顶部。我可以手动完成,但我认为应该有其他优雅的方式来做到这一点,我不知道。

那么,当路线改变时,有没有一种优雅的方式滚动到顶部?

最佳答案

问题是您的 ngView 在加载新 View 时会保留滚动位置。您可以指示 $anchorScroll “在 View 更新后滚动视口(viewport)”(docs 有点模糊,但这里的滚动意味着 滚动到顶部新 View )。

解决方案是将 autoscroll="true" 添加到您的 ngView 元素中:

<div class="ng-view" autoscroll="true"></div>

关于javascript - 更改路线不会在新页面中滚动到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21055952/

相关文章:

javascript - 如何选择第一个td

javascript - Angularjs 循环通过 $http.post

javascript - Angularjs 搜索整个 HTML

javascript - "Cannot find module jquery"在 Electron 应用中

javascript - 模拟函数是 `undefined` 但单元测试不会失败

iphone - UITableView scrollIndicator 位置不正确

java - 在 codenameone 中同时滚动 X 和 Y Pane

jquery - 使用 jQuery 实现滚动动画

javascript - 如何使用 Javascript 创建具有特定自定义数据属性的 div 数组

javascript - Angular js 路由无法正常工作,没有任何 js 错误