时间线重叠“建议主题”

你好。
在简短主题中,时间线会与“推荐主题”部分重叠:


我认为可以在没有回复的主题中隐藏时间线,或者将帖子容器的最小高度设置为与时间线大致相同?

4 个赞

据我所知,这个问题存在已久,是短屏幕和单行单帖主题所特有的,但也许我们退步了?:thinking:

当内容足够长且帖子上方有一些内容时,也会出现这种情况

确实看到了这个问题。

@awesomerobot 提醒我,我们过去曾对单帖主题隐藏时间线,对吧?也许这就是我们最近看到更多此类情况的原因,或者这确实是一个回归问题?无论如何,在这种情况下,时间线的所有元素在第一个(也是唯一一个)帖子的底部控件中都已重复显示。

1 个赞

是的,我想我们从 2016 年就开始隐藏它了:UX: Hide all timeline controls when fewer than 3 posts · discourse/discourse@b9f8264 · GitHub

直到最近一段时间,时间线都隐藏了

@j.jaffeux 你最近的更改是否导致了这个问题回归?

3 个赞

当只有一篇帖子时,我们确实应该隐藏时间线。三篇似乎有点多,但一篇……

1 个赞

单个帖子带来的巨大问题是,当它像本帖这样真正有用时,却无法正常工作。我们不支持在巨型帖子中间进行导航,因此会变得非常、非常、非常、非常令人困惑。这比单纯的渲染问题要糟糕得多。

2 个赞

那就根据帖子长度加上单条帖子来调整吧……毕竟,一个主题里只有一条一句话的帖子,我们不需要垂直时间线,对吧?

绝对不行,但我们需要修复实现方式,我想这就是我想表达的重点。

如果必须在无条件移除它,还是为极少数非常长的单篇帖子保留它之间做选择,我会选择无条件移除。

不过,如果我们能修复底层的实现问题,我完全支持保留它,以便 @Johani 那篇出色的指南能继续发挥作用,那会非常有帮助。

逻辑应该是

如果主题中只有一篇帖子,并且该帖子的长度小于……1000 个字符……则完全抑制时间线。

即使是两篇只有一句话的帖子,可能也是安全的吧?

  • 但如果它们全是单个字符和回车/换行符等,我就不确定了。我认为粗略检查就可以了,我们不需要在这里担心那些极端的边界情况。
1 个赞

当然,即使只用 CSS 也能实现。但如果采用这种方法,我们就得修复滚动条的问题。

否则,我们不如直接改成“如果只有 1 篇帖子则隐藏时间线”,这样更简单。

除非那篇帖子是长达 30,000 个字符的异常长文,否则我们不希望它被隐藏,所以……不行。

我们确实希望将其隐藏……抱歉……这正是我想说的。除非我们修复这个问题:

我将时间线向下拖动:

它仍然停留在顶部。:crying_cat_face:

不过,如果我使用浏览器原生的滚动条,这个滚动条就能按预期工作:

如果我们保留它用于包含一个巨大帖子的主题,它根本无法正常工作,这非常令人困惑。所以我们必须修复这个问题。

1 个赞

我明白了,我们需要一些好的非正式测试用例,以确保我们覆盖了关注的场景。

1 个赞

不,这不是那个提交。

相关的提交很可能是:

因此,在该提交之前,逻辑存在某种程度的重复和差异,并且还导致了一个空(但可见)的时间线控制小部件。

我今天会查看一下。

3 个赞

我尝试修复时间线重叠问题的方案如下:

该方案并未解决您所描述的问题,即点击或拖动时间线时无法改变页面滚动位置。我快速查看了一下实现方式,认为这应该作为一个独立的项目来处理,因为该行为一直如此,修改它会产生许多影响。

如果只有一个帖子,我现在会检查帖子的高度,如果小于 1000 像素,则隐藏滚动条。

这代表了一个大约如下长度的帖子:

短帖子的示例:

此提交还修复了另一个 bug,该 bug 导致在完整页面刷新时主题管理按钮显示在错误的位置:

修复前如下:

修复后应为以下位置:

我还检查了两个包含最少内容的帖子是否没有重叠:

移动端不应有任何变化。

4 个赞

太好了,谢谢,Joffrey :smiling_cat_with_heart_eyes:

2 个赞

已合并,例如可以在该主题中看到实际效果(至少目前只有一个帖子时):

3 个赞

此主题已在 5 天后自动关闭。不再允许新的回复。