八度数

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

numOctaves 属性定义了 <feTurbulence> 滤镜原语的噪声函数的次数。

一个“次数”是一个由其频率和幅度定义的噪声函数。通过累加多个频率递增、幅度递减的“次数”来构建湍流。次数越多,噪声看起来越自然。但更多的次数也需要更多的计算,从而对性能产生负面影响。

你可以将此属性与以下 SVG 元素一起使用

示例

示例 1

html
<svg viewBox="0 0 420 200" xmlns="http://www.w3.org/2000/svg">
  <filter id="noise1" x="0" y="0" width="100%" height="100%">
    <feTurbulence baseFrequency="0.025" numOctaves="1" />
  </filter>
  <filter id="noise2" x="0" y="0" width="100%" height="100%">
    <feTurbulence baseFrequency="0.025" numOctaves="3" />
  </filter>

  <rect x="0" y="0" width="200" height="200" filter="url(#noise1)" />
  <rect x="220" y="0" width="200" height="200" filter="url(#noise2)" />
</svg>

示例 2

html
<svg
  width="200"
  height="200"
  viewBox="0 0 220 220"
  xmlns="http://www.w3.org/2000/svg">
  <filter id="displacementFilter">
    <feTurbulence baseFrequency="0.05" numOctaves="3" result="turbulence" />
    <feDisplacementMap
      in2="turbulence"
      in="SourceGraphic"
      scale="50"
      xChannelSelector="R"
      yChannelSelector="G" />
  </filter>

  <circle cx="100" cy="100" r="100" filter="url(#displacementFilter)" />
</svg>

用法说明

<integer>
默认值 1
可动画的
<integer>

定义次数。不允许使用负值。

规范

规范
滤镜效果模块第 1 级
# element-attrdef-feturbulence-numoctaves

浏览器兼容性

另见