如果帖子少于 3 条,在特定浏览器宽度下主题时间线无法打开

如何复现:

  1. 访问 此页面
  2. 缩小浏览器宽度,直到出现主题进度条:
  3. 点击主题进度条 => 主题时间线未打开

我认为该问题是由 这段代码 引起的。

7 个赞

你能在 meta 或 try.discourse.org 上复现这个问题吗?

我可以在 Feverbee 上复现,但在这里不行。如果我们在这里无法复现,那可能是他们所做的定制导致的。

6 个赞

你可以在这里复现:

(缩小宽度,但不要太窄)

5 个赞

这确实是一个 bug……如果主题中只有 2 篇帖子,并且你缩小屏幕,就会出现这种情况。

我同意,很可能是链接的代码导致了问题。

鉴于这是种子数据的一部分,链接应保持稳定。

4 个赞

你能看看这个吗 @j.jaffeux

1 个赞

是的,这段代码负责处理该问题,它会在窗口高度与主题高度达到特定比例时触发。

但我不理解的是,预期的行为应该是什么?我可以直接移除这个检查让它正常工作,但我猜我们当初添加它是有原因的?

@eviltrout 你实现了这个初始功能 FIX: If a topic is really long, show the timeline · discourse/discourse@79763a6 · GitHub

这个逻辑现在是否不再适用?公式是否有误?我认为它在主题实际上并不大的情况下也被触发了,所以也许我们应该修复这个问题?

另外,我发现所有“推荐主题”都被用在了这个主题高度计算中:${"#topic").css("background", "red")}

也许这就是自从你实现该功能以来发生的变化。

6 个赞

另外,我们是否应该早点修复这个问题?在这种情况下为什么要显示主题进度?

如果帖子数量 <= 3,当 posts.height < window.height * 1.5 时,是否隐藏主题进度?

4 个赞

最初的设计逻辑是,如果主题内容非常简短,就不显示进度小部件,我认为这仍然合理。

不过,我之前的理解是,这里的 bug 在于小部件确实显示了,但点击它却没有反应。一个合适的修复方案是:只要小部件显示出来,点击功能就应该生效。至于在其他时候(例如主题简短时)将其隐藏,我完全同意这样做。

5 个赞

我在想,我们是否至少应该在移动端/折叠状态下将隐藏阈值改为 1(甚至直接从移动端/折叠状态中移除这个逻辑)。

即使在移动端只有两条帖子,区分第一条和第二条也会很有帮助。

5 个赞

始终显示时间线在桌面端也有其价值,例如当您正在阅读的帖子无法在一屏内完整显示时。

1 个赞

这应该能解决问题:

详细信息请参阅提交记录。

7 个赞

此主题在最后一次回复 5 天后自动关闭。不再允许新回复。