【问题标题】:SVG filter "Turbulence" not rendering well on safariSVG 过滤器“湍流”在 safari 上的渲染效果不佳
【发布时间】:2022-06-16 01:14:47
【问题描述】:

我正在尝试在我网站上的图像上应用 svg“湍流”过滤器。 问题是它在 FireFox 和 Chrome 上看起来不错:

但在 safari 上看起来很可怕:

似乎 Safari 正在将我的图像“分割”成图块......你有什么想法吗?

这是我的代码:

<svg>
     <filter id="turbulence" x="0" y="0" width="100%" height="100%">
            <feTurbulence
              id="sea-filter"
              numOctaves="3"
              seed="2"
              baseFrequency="0.02 0.05"
            ></feTurbulence>
            <feDisplacementMap
              scale="20"
              in="SourceGraphic"
            ></feDisplacementMap>
            <animate
              xlinkHref="#sea-filter"
              attributeName="baseFrequency"
              dur="120s"
              keyTimes="0;0.5;1"
              values="0.02 0.06;0.04 0.08;0.02 0.06"
              repeatCount="indefinite"
            />
      </filter>
</svg>

<div className={styles.sea} style={{ background: `url(${sea})` }}></div>

CSS:

.sea {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100%;
  background-image: url("../../assets/images/Hero/Sea/sea.webp");
  background-size: cover;
  filter: url("#turbulence");
  animation: floating 80s ease forwards infinite;
  transform: translateY(0) scale(1.25);
}

我试图删除我的动画和我的变换,但它不起作用...

提前致谢!

【问题讨论】:

标签: html css svg svg-animate svg-filters


【解决方案1】:

尝试执行以下操作。

color-interpolation-filters="sRGB" 添加到您的 SVG 元素中

stitchTiles="stitch" 添加到您的 feTurbulence 元素中

【讨论】:

    猜你喜欢
    • 2021-03-24
    • 2011-11-06
    • 1970-01-01
    • 2019-07-06
    • 2012-07-08
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多