Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web 缩放时,Firefox会缓慢渲染svg文件_Web_Svg_Firefox_Gsap - Fatal编程技术网

Web 缩放时,Firefox会缓慢渲染svg文件

Web 缩放时,Firefox会缓慢渲染svg文件,web,svg,firefox,gsap,Web,Svg,Firefox,Gsap,我目前正在开发一个由html、css、svg和javaScript文件组成的交互式地图。以下是地图的早期构建: 您可以使用鼠标滚轮进行放大和缩小(放大的末端定位不远)。我担心的是,Chrome90.0中的缩放效果很好,而Firefox88.0中的缩放动画效果不稳定 我在右下角实现了一个帧速率计数器,在Firefox中,在缩放时fps下降到10 fps 地图由几个分层的SVG文件组成,这些文件通过绝对定位进行堆叠。虽然我已经尽可能优化了所有SVG,但基本层(类为“layer-0”的div)的大小

我目前正在开发一个由html、css、svg和javaScript文件组成的交互式地图。以下是地图的早期构建:

您可以使用鼠标滚轮进行放大和缩小(放大的末端定位不远)。我担心的是,Chrome90.0中的缩放效果很好,而Firefox88.0中的缩放动画效果不稳定

我在右下角实现了一个帧速率计数器,在Firefox中,在缩放时fps下降到10 fps

地图由几个分层的SVG文件组成,这些文件通过绝对定位进行堆叠。虽然我已经尽可能优化了所有SVG,但基本层(类为“layer-0”的div)的大小是176KB

缩放动画通过css转换完成:

@keyframes animateZoom-2 {
   100% {
   transform: scale3d(2, 2, 1);
   }
}
我已经尝试过通过库进行缩放,但它会使所有浏览器的缩放速度更慢

如果我删除这个大的基本层SVG文件,缩放在所有浏览器中看起来都很流畅。不幸的是,无法通过删除细节来简化大型SVG文件


所以我的问题是:为什么Firefox中的SVG缩放速度比其他浏览器慢得多?有没有办法绕过这个问题。可能会生成一个图像,用图像替换SVG文件,缩放图像,最后切换回SVG文件?

速度慢仅仅是因为Firefox的渲染方式与Chrome不同。尝试确保刻度从不超过1,看看这是否有帮助。您还应该尝试隐藏当前不在屏幕上的元素。