CSS — 如何模糊 SVG 蒙版?

Die*_*ani 2 html css svg clip-path

我尝试模糊 SVG 剪辑路径,但没有成功。我尝试了不同的解决方案,但没有一个有效。我不确定除了 之外是否还有其他解决方案filter

伪代码

  • SVG 剪辑路径应显示下面的文本
  • SVG 的边缘应该模糊

先感谢您。

超文本标记语言

    .wrapper {
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative;
    }
    
    .h1, blur {
      width: 100vw;
      height: 100vh;
    }
    
    .h1 {
      position: absolute;
      top: 0;
      left: 0;
      margin: 0;
      padding: 0;
      font-size: 4em;
      clip-path: url(#svgPath);
      background-color: blue;
    }
    
    .blur {
      position: absolute;
      top: 0;
      left: 0;
      margin: 0;
      padding: 0;
      font-size: 4em;
      color: blue;
      background-color: white;
      filter: blur(8px)
    }
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
      <h1 class="blur">
        Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
      </h1>
      <h1 class="h1">
        Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
      </h1>
    </div>
    
    <svg id="googlesMain" height="0" width="0">
      <defs>
        <filter id="f1" x="0" y="0">
          <feGaussianBlur in="SourceGraphic" stdDeviation="15" />
        </filter>
      </defs>
        <clipPath id="svgPath">
           <circle id="clipPath" cx="250" cy="250" r="250"/>
        </clipPath>
    </svg>
Run Code Online (Sandbox Code Playgroud)

Pau*_*eau 5

好的,这是一种使用 aradial-gradient()作为 a 的方法mask-image

var h1 = document.getElementById('masked');

document.addEventListener('mousemove', mouseListen, false);

function mouseListen(e){ 
  setMaskPos(e.clientX,e.clientY);
}

function setMaskPos(x,y) {
  h1.setAttribute("style", "-webkit-mask-image: radial-gradient(circle at " + x + "px " + y + "px, black 0px, black 200px, transparent 250px)");
}

// Initialise the mask off screen
setMaskPos(-999,0);
Run Code Online (Sandbox Code Playgroud)
.wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.h1, blur {
  width: 100vw;
  height: 100vh;
}

.h1 {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  font-size: 4em;
  background-color: white;
}

.blur {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  font-size: 4em;
  background-color: white;
  filter: blur(8px)
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <h1 class="blur">
    Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
  </h1>
  <h1 id="masked" class="h1">
    Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
  </h1>
</div>
Run Code Online (Sandbox Code Playgroud)