所以,我有一个 SVG 叠加层,它有一个多边形拖动手柄,用于调整可缩放图像区域周围的框的大小。在 Chrome 中,一切都在顺利运行,但在 Firefox 中,一切都以难以描述的方式分崩离析。
具体来说,在 Firefox(在 54 和 57 中测试)中,多边形和拖动手柄明显呈现在正确的位置,但指针事件无法访问。我玩过pointer-events
CSS 规则,但这似乎不是问题(或者至少不是明显的主要问题)。
如果我增加r
将拖动手柄的值或笔画宽度增加超过某个阈值,
我创建了一个代码笔演示该行为的代码笔。
在这个例子中,我增加了左上角、左中角和左下角(或它们的笔划)的大小。左上方和中部的手柄将展示悬停效果,而左下方的手柄则不会。如果我将左下角 r 提高一个档次,它将是可悬停的。其余的句柄在 FireFox 中是不可悬停的。还有一个旋转手柄,它没有其他手柄那么大,但无论如何都可以悬停。同样,一切都在 Chrome 中运行良好。
更奇怪的是,可悬停/可事件空间通常不在渲染元素的正上方。它通常略高于、低于或偏向一侧。例如,左上手柄上方的可悬停空间位于手柄左侧稍远的位置。
我最初认为这可能与 Firefox 围绕转换起源的问题有关,但经过大量修补后,我不确定它是否与此相关;尤其是对象在视觉上准确地呈现在它应该在的位置。
完全被难住了。