有人遇到过同样的问题吗?我正在使用带有模板级订阅的铁路由器
例如。我有一个很长的页面“项目列表”,我可以向下滚动。然后我点击底部某处的一个项目,然后下一个模板渲染得比应该的低。
想象一下,你在youtube上搜索,向下滚动结果,然后你点击一个视频片段,但它不是从顶部打开而是低,所以你需要滚动到顶部才能看到视频。
我试图将“滚动到顶部”脚本放入onRendered回调中,但这种“跳跃”可以用肉眼识别。所以它变得更糟。
(更新)我现在找到了这个解决方案:
Router.onBeforeAction(function() {
$(window).scrollTop(0);
this.next();
});
答案 0 :(得分:6)
如果您正在使用FlowRouter,您可以轻松地在triggersEnter路由定义中添加它:
const publicRoutes = FlowRouter.group({
name: 'public',
triggersEnter: [() => {
window.scrollTo(0, 0);
}],
});
答案 1 :(得分:3)
答案 2 :(得分:0)
尝试将其抛入您的代码中,如果您使用React将其抛入componentDidMount()函数
window.scrollTo(0, 0);