【问题标题】:SVG filterRes alternative/replacement strategySVG filterRes 替代/替换策略
【发布时间】:2016-11-29 13:54:26
【问题描述】:

当您创建带有阴影的 SVG,然后放大/缩小您的 SVG 时,由于重新计算阴影,您会遇到一些严重的性能问题。

过去,您可以使用filterRes='' 来解决此问题。但是,过滤器已被弃用并从 SVG 规范中删除。

我正在寻找filterRes='' 的替代方案,它可以让我在执行诸如放大/缩小等会导致重新计算阴影的操作时以高性能的方式处理诸如 SVG 阴影之类的东西。


有没有人有克服过滤器被弃用后出现的性能障碍的经验?任何替换 filterres 用来提供的功能的策略示例?

【问题讨论】:

    标签: javascript performance svg svg-filters


    【解决方案1】:

    最简单的方法是将阴影渲染到图像中,并将其包含在您的 svg 中。从那开始,可能会有一些解决方案以不同的分辨率生成阴影,并根据需要拉入适当的尺寸。您也可以使用 <canvas> 创建影子客户端并将其作为 base64 编码的图像源交给 svg。

    这在很大程度上取决于您的应用程序和性能要求,因此预渲染三个或用于“结果步骤”就足够了,或者需要应用更复杂的东西......

    顺便说一句。也可以用Javascript引用<filter>元素,直接操作过滤属性...

    【讨论】:

      【解决方案2】:

      如果您可以说服浏览器在 GPU 而不是 CPU 上进行缩放,这将使事情的性能大大提高,因此使用 CSS 3D 变换而不是 JavaScript 或 viewBox 动画来放大和缩小 SVG 可能会奏效.

      【讨论】:

        猜你喜欢
        • 2019-04-23
        • 1970-01-01
        • 2022-08-20
        • 2020-03-13
        • 1970-01-01
        • 1970-01-01
        • 2018-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多