使用Meteor为特定页面/路线指定“html,body”css设置

时间:2014-04-22 13:45:43

标签: javascript html css meteor iron-router

我试图在Meteor应用中为特定路线/页面调整一些页面背景css设置。我能够通过使用Template.template.rendered / destroyed和jQuery选择器在渲染模板时注入css,如下所示:

Template.template.rendered = function() {
  $('html, body').css({
    "background-color": "#fdfdfd",
    ...additional css properties
  };
};

Template.template.destroyed = function() {
  $('html, body').css({
    "background": "none"
  };
};

我想知道是否有人知道更好的方法来做到这一点。它似乎有点慢,当使用浏览器上的后退按钮返回页面时,页面似乎冻结了大约5秒钟。在钩子之前/之后使用铁制路由器更好吗?我对它们并不太熟悉,但这种缓慢似乎是一个浏览器问题。我的想法是前/后挂钩有助于解决这个问题。除了这两种方法之外还有其他选择吗?感谢。

1 个答案:

答案 0 :(得分:2)

除非您真的,否则需要以某种特定于某些页面的方式将样式直接附加到htmlbody元素,我会这样做强烈建议使用width: 100vw;height: 100vh;以及相应的id将每个整页包装在div中,然后使用后者直接使用css进行样式设置。

如果您 需要直接附加到htmlbody元素,您是否尝试使用铁路由器中的onAfterAction挂钩执行此操作?似乎是一个更好的地方,因为造型取决于路线,而不是模板(即使Blaze意味着你可能可以逃脱你正在做的事情。)