meteor - 下一条路线不是从页面顶部打开(向下滚动)。为什么?

标签 meteor iron-router

有没有人遇到过同样的问题?我正在使用具有模板级订阅的铁路由器。
例如。我有一个很长的页面“项目列表”,我可以在其中向下滚动。然后我点击底部某处的一个项目,下一个模板呈现的比它应该的低。
想象一下,您在 youtube 上搜索,向下滚动结果,然后单击视频片段,但它不是从顶部而是从下方打开,因此您需要返回顶部才能看到视频。

我试图将“滚动到顶部”脚本放入 onRendered 回调中,但这种“跳跃”可以用肉眼识别。所以情况变得更糟。

(更新)我现在找到了这个解决方案:

Router.onBeforeAction(function() {
  $(window).scrollTop(0);
  this.next();
});

最佳答案

如果您使用 FlowRouter,您可以轻松地将其添加到 triggersEnter 路由定义中:

const publicRoutes = FlowRouter.group({
  name: 'public',
  triggersEnter: [() => {
    window.scrollTo(0, 0);
  }],
});

关于meteor - 下一条路线不是从页面顶部打开(向下滚动)。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31840793/

相关文章:

javascript - Meteor 中的模板级订阅

javascript - 如何从mongodb中选择一个字段不等于某一值的所有文档

javascript - 使用meteor.js框架将图像上传到MongoDb

javascript - Meteor Iron 路由器服务器端 Hook

ios - meteor ios cordova ENOENT,没有这样的文件或目录

mongodb - meteor MongoDB数据库在哪里?

javascript - 如何进行排序?

javascript - 如何显示模板而不将其显示在布局模板内?

javascript - 如何使用熨斗:router to create a separate link for each item in collection

Meteor|iron-router|Router.map和Router.route有什么区别