我想创建一个不透明模糊覆盖,类似于 Windows Aero 或 iOS7。不幸的是filter: blur()
orfilter: url(#svgBlur)
属性只能应用于元素,而不是它背后的内容。
为了解决这个问题,我们需要一个模糊的背景副本。这在 FX 中使用background: -moz-element(#elementId)
实验性 CSS 属性是可能的。使用它我只能在FX中获得我想要的效果。
关于解决模糊问题还有其他 问题,其中一种解决方案似乎是使用html2Canvas插件。
然而,这是重新创建整个模糊内容,包括手动重新创建的样式等。这是非常令人印象深刻的作品,但对于这种效果来说,它似乎是巨大的矫枉过正(无论是在性能上还是在尺寸上)。
我想做的是创建某种垫片,仅用于-moz-element
. 看起来应该可以使用 SVGforeignObject
,但是如果您的 HTML 不是有效的 XML,那么它既有安全问题,也会失败。
有没有什么方法可以模拟-moz-element
(使用画布、SVG 或其他东西)我不必解析/重绘整个覆盖区域?