我在js中创建了一个具有clip-path css属性的图像。
我还在用svg中的剪切路径创建一个svg,并用一个圆圈作为遮罩。
渲染后看起来像这样:

`<svg id="ayads-bubble-svg" height="0" width="0">
  <defs>
    <clipPath id="bubble-path">
      <circle cx="188" cy="117" r="229">
      </circle>
    </clipPath>
  </defs>
</svg>`


我在滚动上更改了circle r属性,但是我的图像剪辑没有更新(如果我在检查器中禁用并启用了剪辑路径,它将起作用)。

如果你们有一个主意我会很高兴的
非常感谢 !

最佳答案

如果我们没有所有(相关)代码段,很难说出您的妖精坐在哪里。但是,我做了一个简单的示例,对我来说效果很好(chrome v51.0 +)。

我希望这有帮助。



var circle = document.querySelector('circle')

window.addEventListener('scroll', function() {
  var delta = window.scrollY / (document.body.scrollHeight - window.innerHeight)
  circle.setAttribute('r', 50 - delta * 25)
})

html,
body {
  height: 200%;
}

svg {
  position: fixed;
}

<svg viewBox="0 0 200 200">
  <defs>
    <clipPath id="bubble-path">
      <circle cx="50" cy="50" r="50" />
    </clipPath>
  </defs>

  <rect width="100" height="100" clip-path="url(#bubble-path)" />
</svg>

Scroll Down

关于css - 剪切元素未在剪切路径更改时更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38009564/

10-13 00:15