如何复现:
- 访问 此页面。
- 缩小浏览器宽度,直到出现主题进度条:
- 点击主题进度条 => 主题时间线未打开
我认为该问题是由 这段代码 引起的。
你能在 meta 或 try.discourse.org 上复现这个问题吗?
我可以在 Feverbee 上复现,但在这里不行。如果我们在这里无法复现,那可能是他们所做的定制导致的。
你可以在这里复现:
(缩小宽度,但不要太窄)
这确实是一个 bug……如果主题中只有 2 篇帖子,并且你缩小屏幕,就会出现这种情况。
我同意,很可能是链接的代码导致了问题。
鉴于这是种子数据的一部分,链接应保持稳定。
你能看看这个吗 @j.jaffeux?
是的,这段代码负责处理该问题,它会在窗口高度与主题高度达到特定比例时触发。
但我不理解的是,预期的行为应该是什么?我可以直接移除这个检查让它正常工作,但我猜我们当初添加它是有原因的?
@eviltrout 你实现了这个初始功能 FIX: If a topic is really long, show the timeline · discourse/discourse@79763a6 · GitHub
这个逻辑现在是否不再适用?公式是否有误?我认为它在主题实际上并不大的情况下也被触发了,所以也许我们应该修复这个问题?
另外,我发现所有“推荐主题”都被用在了这个主题高度计算中:${"#topic").css("background", "red")}:
也许这就是自从你实现该功能以来发生的变化。
另外,我们是否应该早点修复这个问题?在这种情况下为什么要显示主题进度?
如果帖子数量 <= 3,当 posts.height < window.height * 1.5 时,是否隐藏主题进度?
最初的设计逻辑是,如果主题内容非常简短,就不显示进度小部件,我认为这仍然合理。
不过,我之前的理解是,这里的 bug 在于小部件确实显示了,但点击它却没有反应。一个合适的修复方案是:只要小部件显示出来,点击功能就应该生效。至于在其他时候(例如主题简短时)将其隐藏,我完全同意这样做。
我在想,我们是否至少应该在移动端/折叠状态下将隐藏阈值改为 1(甚至直接从移动端/折叠状态中移除这个逻辑)。
即使在移动端只有两条帖子,区分第一条和第二条也会很有帮助。
始终显示时间线在桌面端也有其价值,例如当您正在阅读的帖子无法在一屏内完整显示时。
这应该能解决问题:
详细信息请参阅提交记录。
此主题在最后一次回复 5 天后自动关闭。不再允许新回复。