# 在封装 Discourse 时覆盖层位置错误

**URL:** <https://meta.discourse.org/t/overlays-misplaced-when-wrapping-discourse/130115>\
**Category:** Development\
**Created:** [2019 年10 月 3 日 09:26 UTC](https://meta.discourse.org/t/overlays-misplaced-when-wrapping-discourse/130115 "2019-10-03T09:26:18Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

作者： ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
发布日期： [2019 年10 月 3 日 09:54 UTC](https://meta.discourse.org/t/overlays-misplaced-when-wrapping-discourse/130115/2 "2019-10-03T09:54:23Z")

</div>

是的，我在为某个客户开发大型插件时，在添加超大横幅时也遇到过这个问题。在我的情况下，偏移量简直离谱（完全跑出屏幕外了！）

也许有更简单的解决方案，但事实证明这有点复杂，需要你覆盖一个函数，例如针对用户卡片：

```plaintext
          api.modifyClass('component:user-card-contents', {
            _positionCard(target) {

```

这段代码来自一个 mixin，位于：[discourse/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 at b3eb67976dd0c0129736fe0b86167d7e512b51f4 · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/b3eb67976dd0c0129736fe0b86167d7e512b51f4/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6)

我使用了 jQuery 来判断是否根据横幅的可见性应用该修改：在某些页面上我有那个大“横幅”，而在其他页面则没有。你也可以采用类似的策略。

说实话，你的例子看起来没那么糟糕——我倒是考虑让它保持原样？

---

_[View the full topic](https://meta.discourse.org/t/overlays-misplaced-when-wrapping-discourse/130115)._
