图像灯箱不支持手动调整大小或[grid]标签

优先级/严重性: 低。
平台: 在 Windows 10 上的 Firefox 127.0 和 Android 14 上的 Chrome 125.0.6422.165 上已确认。
描述: 见下文。
重现步骤: 上传分辨率为 690×500 像素或更低的图像,然后手动调整其大小(例如 ![|336x456,x150](upload://uoNNF6SaHfaM6bRapNRZoeKQqjU.png)) 或将其放入 [grid] 中(例如 [grid] ![|336x456](upload://uoNNF6SaHfaM6bRapNRZoeKQqjU.png) [/grid])。


预期行为

Discourse 中灯箱的工作方式是,如果图像已被缩小以适应帖子,则会将其灯箱化,以便可以单击以查看完整分辨率。

问题

当前实现方式存在一个错误:它仅将图像的原始分辨率与网站的“最大图像宽度”和“最大图像高度设置”(默认为 690×500 像素)进行比较,忽略了手动调整大小图像网格。 这导致的结果是,如果图像小于 [最大图像宽度]×[最大图像高度],则可能不会对其进行灯箱化。

手动调整大小[^1]

以下是图像手动缩小后灯箱化失败的示例——将鼠标悬停在以下图像上,您会发现它们的灯箱化效果不一致;单击灯箱化的图像,您会发现其中一些在按左右键时不会出现:[1]

图像网格

图像网格中的问题在于,网格几乎总是会调整图像大小,甚至经常裁剪图像,这使得它们无法单击以查看完整图像成为一个问题。

解决方案

更新的解决方案建议可以在下面的讨论中找到。

最初提出的解决方案… 解决方案是确保:
  1. 灯箱将图像在页面上的大小与其原始分辨率进行比较,并且
  2. 网格中的图像始终进行灯箱化。

据我所知,应用灯箱是在客户端完成的,所以我想这至少不应该非常困难!

[^1]:此问题的一部分之前已在论坛上提及, 在该主题中,得出的解决方案与此基本相同。


  1. 最初,这导致了严重的格式问题,因为我单独报告了一个问题, 但在编辑此帖子并编写此部分时,该问题已得到修复。 ↩︎

6 个赞

我有一个想法:有没有理由不将所有图片都放入灯箱? 至少那些可以在移动设备上舒适地适应信息栏和小“展开”图标,而不会遮挡太多图片的图片。灯箱除了允许您查看全分辨率图像外,还有两个方面的价值:

  • 它会显示替代文本(关键是,海报比标题文本更有可能提供替代文本,因为替代文本是预先填充的,而标题文本的语法更晦涩),并且
  • 点击灯箱后在图像之间切换时,图像不会被省略。

有没有理由不将可以完整看到的图片放入灯箱?

一种选择可能是(除了将网格中的所有图片都放入灯箱外)将页面上所有大于某个尺寸的图片都放入灯箱——比如,大于 72×72 像素左右(我指的是行数——大约 3 行大小的任何东西)。你觉得怎么样?

1 个赞

我同意,并且正如您在 OP 中链接的那样,我过去也提出过这个问题 Some images don't lightbox? - #3 by piffy

在我看来,问题在于“调整大小和灯箱”设置是耦合在一起的。

理想情况下,我希望调整大小的设置与 690x500px 的默认值相似,但灯箱的设置更接近 72x72px(就像任何大于大表情符号或“贴纸”大小的图像一样)。

灯箱的主要目的是查看图像的未缩放版本,但我绝对更将其用作轮播风格的画廊。这就是为什么 502px 高的图像与 499px 高的图像被区别对待,尤其是在同一网格中时,会显得有些刺眼。

1 个赞

我认为这完美地概括了我的想法——只有在这种情况下,您才不希望使用灯箱:当图像“属于文本的一部分”或“属于帖子的格式化部分”时。

我认为这总体上是一个更好的解决方案——将“大于此尺寸的灯箱图像……”单独作为一个设置,并设置一个低得多的默认值。它在两个方面应该与当前实现不同:

  • 它应该根据页面上的尺寸进行判断,而不是根据原始图像尺寸。
  • 它可能需要同时超过两个尺寸,而不仅仅是一个——我无法想象一个场景,您希望一个在页面上尺寸为 690x10 像素的图像被放入灯箱。

关于用例,我有时会以类似表情符号的方式包含小图像——但它们是高分辨率的,因此在高 DPI 屏幕上不会模糊。例如:

! 这个图像不应该被放入灯箱,因为 1) 它是一个表情符号,但更重要的是,2) 右下角的小展开图标会在移动设备上覆盖大部分内容。目前,它没有被放入灯箱,因为高分辨率的原始图像尺寸小于 690x500 像素(确切地说是 372x468 像素),但尽管已缩小尺寸,它仍不应被放入灯箱——真正重要的判断标准应该是它在页面上的尺寸。

1 个赞

分辨率为 100 x 100 像素或更高的图像现在将使用灯箱显示。

4 个赞