Meteor 下一个路由不会从页面顶部打开(向下滚动)。为什么?
有人遇到过同样的问题吗?我正在使用模板级订阅的iron路由器。Meteor 下一个路由不会从页面顶部打开(向下滚动)。为什么?,meteor,iron-router,Meteor,Iron Router,有人遇到过同样的问题吗?我正在使用模板级订阅的iron路由器。 例如我有一个长长的页面“项目列表”,可以向下滚动。然后我点击底部某个地方的一个项目,下一个模板的渲染比它应该的低。 假设您在youtube上搜索,向下滚动结果,然后单击视频片段,但它不是从顶部打开的,而是从下部打开的,因此您需要滚动回顶部以查看视频 我曾尝试将“滚动到顶部”脚本放入onRendered回调中,但这种“跳跃”是肉眼可以识别的。所以情况变得更糟 (更新)我现在已经找到了这个解决方案: Router.onBeforeA
例如我有一个长长的页面“项目列表”,可以向下滚动。然后我点击底部某个地方的一个项目,下一个模板的渲染比它应该的低。
假设您在youtube上搜索,向下滚动结果,然后单击视频片段,但它不是从顶部打开的,而是从下部打开的,因此您需要滚动回顶部以查看视频
我曾尝试将“滚动到顶部”脚本放入onRendered回调中,但这种“跳跃”是肉眼可以识别的。所以情况变得更糟
(更新)我现在已经找到了这个解决方案:
Router.onBeforeAction(function() {
$(window).scrollTop(0);
this.next();
});
你应该试试这个
meteor add okgrow:iron-router-autoscroll
参考资料:尝试将其放入代码中,如果使用React,则将其放入componentDidMount()函数中
如果您使用的是FlowRouter,您可以轻松地将其添加到triggersEnter路由定义中:
const publicRoutes = FlowRouter.group({
name: 'public',
triggersEnter: [() => {
window.scrollTo(0, 0);
}],
});
尝试使用这个软件包?支持Iron路由器和Flow路由器的更新版本:要全局设置它,可以使用
FlowRouter.triggers.enter([()=>{window.scrollTo(0,0);}])代码>
const publicRoutes = FlowRouter.group({
name: 'public',
triggersEnter: [() => {
window.scrollTo(0, 0);
}],
});