下一条路线不是从页面顶部打开的(向下滚动)。为什么?
Next route opens not from the top of a page (scrolls lower). Why?
有人遇到过同样的问题吗?我正在使用带有模板级订阅的 Iron 路由器。
例如。我有一个很长的页面 "list of items",我可以在其中向下滚动。然后我单击底部某处的其中一项,下一个模板呈现低于应有的水平。
想象一下,您在 youtube 上搜索,向下滚动结果,然后点击一个视频片段,但它不是从顶部打开而是从底部打开,因此您需要滚动回到顶部才能看到视频。
我已经尝试将 "scroll to top" 脚本放入 onRendered 回调中,但是这个 "jump" 是可以用肉眼识别的。所以它变得更糟。
(更新) 我现在找到了这个解决方案:
Router.onBeforeAction(function() {
$(window).scrollTop(0);
this.next();
});
你应该试试这个
meteor add okgrow:iron-router-autoscroll
尝试将其添加到您的代码中,如果您使用 React,则将其添加到 componentDidMount() 函数中
window.scrollTo(0, 0);
如果您使用的是 FlowRouter,您可以轻松地将其添加到触发器中输入路由定义:
const publicRoutes = FlowRouter.group({
name: 'public',
triggersEnter: [() => {
window.scrollTo(0, 0);
}],
});
有人遇到过同样的问题吗?我正在使用带有模板级订阅的 Iron 路由器。
例如。我有一个很长的页面 "list of items",我可以在其中向下滚动。然后我单击底部某处的其中一项,下一个模板呈现低于应有的水平。
想象一下,您在 youtube 上搜索,向下滚动结果,然后点击一个视频片段,但它不是从顶部打开而是从底部打开,因此您需要滚动回到顶部才能看到视频。
我已经尝试将 "scroll to top" 脚本放入 onRendered 回调中,但是这个 "jump" 是可以用肉眼识别的。所以它变得更糟。
(更新) 我现在找到了这个解决方案:
Router.onBeforeAction(function() {
$(window).scrollTop(0);
this.next();
});
你应该试试这个
meteor add okgrow:iron-router-autoscroll
尝试将其添加到您的代码中,如果您使用 React,则将其添加到 componentDidMount() 函数中
window.scrollTo(0, 0);
如果您使用的是 FlowRouter,您可以轻松地将其添加到触发器中输入路由定义:
const publicRoutes = FlowRouter.group({
name: 'public',
triggersEnter: [() => {
window.scrollTo(0, 0);
}],
});