【问题标题】:Is React compatible with CSS backdrop-filter? [duplicate]React 与 CSS 背景过滤器兼容吗? [复制]
【发布时间】:2019-03-11 23:22:05
【问题描述】:

我在可滚动列表中包含了一个固定元素,适用以下 CSS 规则:

.frosty {
  background-color: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

乍一看,效果很好。然而,当我开始移动它后面的内容时,固定元素的背景并没有改变。

通常,固定元素后面的内容会渗出它,看起来好像是毛玻璃或类似物。难道 React 以某种方式阻止了重新渲染?我该如何解决?

每当我调整窗口大小时它都会更新。

这是一个最小的例子。您可以滚动磨砂和透明元素后面的红色、绿色和蓝色块。磨砂的不会更新。

Codepen

【问题讨论】:

  • 你能粘贴到 react 实现中吗?
  • @bambam 你去吧。
  • 毕竟这似乎不是 React 的问题。 *.com/questions/55105460/…的可能重复

标签: css reactjs


【解决方案1】:

背景不是静态效果。该效果动态地应用于下方(背景)的任何内容。 有支持背景滤镜效果的 react npm 包库。 会很灵活

https://www.npmjs.com/package/react-backdrop-filter

【讨论】:

  • React 是如何阻碍效果的呢?毕竟浏览器只是渲染 HTML 和 CSS,我不希望发生这样的事情。
  • 我并不是说 react 会阻碍效果。使用 react npm 包会更适合你的项目。所以我建议你使用 react-backdrop-filter。
  • 啊,我明白了。感谢您的提示,但这并不能完全回答问题。我知道backdrop-filter 的兼容性有限,没关系。
  • 就是这样。你明白了!
最近更新 更多