【发布时间】:2020-06-24 18:43:38
【问题描述】:
我有一个带有 SVG 背景的 div。 div 的高度和宽度不会改变。唯一改变的是当 div 悬停时用于背景的 SVG 文件。
问题似乎在于,当 SVG 背景被替换时(即使在资源预加载之后),图像似乎在固定到位之前“摇晃”。我已经三重检查,两个 SVG 资源的高度和宽度以及视口完全相同,唯一的区别是颜色。
作为参考,这个问题可以在这个页面上看到:https://tqt.uwaterloo.ca/。
将鼠标悬停在“汉堡包”图标上时,可以看到问题。 将鼠标悬停在“搜索”图标上时没有问题,但是“搜索”图标上有完全相同的 SVG 替换,并且可以按预期工作。
最后说明:此问题只能在 Retina (2x+) 显示器上重现。
【问题讨论】:
-
解决您的问题的一个简单方法是消除过渡。如果您需要保持过渡,您可以使用内联 svg 并过渡路径的填充而不是更改图像
-
@enxaneta 我已经删除了过渡 CSS 属性,并没有发现任何区别。使用内联 SVG 和过渡填充的建议是个好主意。如果我无法通过替换背景图像获得可行的解决方案,我会探索一下!
标签: css svg retina-display