在Firefox中对已转换的svg子项进行/事件处理的奇怪渲染

时间:2017-12-08 22:48:27

标签: javascript html css svg svg-transform

所以,我有一个SVG叠加层,它有一个多边形拖动手柄,用于调整可缩放图像区域周围的框的大小。在Chrome中,一切都在游泳,但在Firefox中,所有这些都难以描述。

具体来说,在Firefox(在54和57中测试)中,多边形和拖动手柄在正确的位置可见地呈现,但指针事件无法访问。我玩过404 CSS规则,但这似乎不是问题(或者至少不是明显的主要问题)。

如果我增加拖动控制柄的pointer-events值或笔划宽度超过某个阈值,能够与Firefox中的拖动控制柄进行交互。

created a codepen证明了这种行为。

在这个例子中,我增加了左上角,左中角和左下角(或它们的笔划)的大小。顶部和中间左侧手柄将显示悬停效果,而左下方则不显示。如果我将左下角撞到一个凹口,那么它将是可以挽回的。其余的手柄在FireFox中无法移动。还有一个旋转手柄,它不像其他手柄那么大,但无论如何都是可以移动的。同样,Chrome中的一切都很棒。

甚至更奇怪的是 hoverable / eventable 空间通常不在渲染元素上。它经常,略高于,低于或偏离侧面。例如,左上方手柄上方的可悬空空间稍微向上并位于手柄的左侧。

我认为这可能与Firefox关于转换起源的问题有关,但经过相当多的修补后,我不确定它在这里是否相关;特别是当物体在视觉上准确地呈现它应该的位置时。

完全难倒。

1 个答案:

答案 0 :(得分:0)

对于其他任何人在晚些时候看到这一点,@ ccprog肯定是在正确的轨道上。在讨论了Mozilla支持后,他们指出大的十进制值高于C ++精度级别,而不是缩放父级并让比例缩小,只是将比例直接应用于组成员修复了Firefox中的渲染问题。 / p>