【问题标题】:Mask that blurs content behind it模糊其背后内容的面具
【发布时间】:2012-03-18 15:25:03
【问题描述】:

作为一个纯粹的美学设计,我想知道是否可以让具有非透明背景的元素模糊其背后的内容。

更具体地说,当我出现一个模式框时(作为我的自定义警报/确认/提示设置的一部分),当前背景内容通过在屏幕上使用与文档背景颜色相同的遮罩来“淡化”。

我想做的是对蒙版内容应用少量模糊(仅几个像素),以进一步将注意力集中到模态框。

浏览器兼容性不是问题,因为正如我所提到的,它纯粹是为了美观。最好我希望它至少在 IE9 中工作,如果可能的话,在 Chrome 中工作。

另外,没有 jQuery。无论如何,如果您愿意,请在 jQuery 中提供答案,但我会先将其翻译成原始 JS,然后再让它靠近我的网站。

【问题讨论】:

  • 你说没有 jQuery,但你是如何处理你的模态的、纯 JavaScript 的?
  • 我网站上的所有内容都是纯 JS,它的工作效率比使用 jQuery 完成的相同功能要高效得多;)
  • 您不能使用透明的 PNG 或 GIF 来模拟模糊吗?像这样jsfiddle.net/j08691/hveTX

标签: css visual-effects


【解决方案1】:

现在您可以使用backdrop-filter CSS 属性。

CSS:

.modal {
    backdrop-filter: blur(10px);
}

【讨论】:

    【解决方案2】:

    纯 CSS 无法实现..

    这是一个相当复杂的过程,需要大量的 javascript,但我相信这是唯一的方法......

    【讨论】:

    • 好的,感谢您提供的信息,但正如您所说,这是一项繁重的工作,所以我想我会放弃这个想法!
    • 对于那些想了解现代解决方案的人,请密切关注backdrop-filter
    【解决方案3】:

    这需要 javascript(以及相当复杂的 javascript)。

    据我了解,听起来您正在尝试创建“航空玻璃”效果,其中半透明元素后面的内容被赋予模糊效果。单独使用 HTML 和 CSS 是不可能的(除非您考虑使用 IE-only filters)。

    目前,没有任何 CSS 属性可以像您描述的那样动态应用图像过滤器。

    【讨论】:

    • 感谢您的指点 - 我知道 IE 过滤器,我担心会出现这种情况...
    【解决方案4】:

    Gaby 提出的 html2canvas 解决方案可能有点矫枉过正。您可以使用已模糊的同一网站的 iframe 获得相同的效果(通过过滤器模糊或其他技术 - 据我所知,“-webkit-filter: blur(2px)”仅适用于 chrome。

    这就是说,我想说这两种解决方案都非常老套,我个人永远不会自己使用任何一种。出于好奇,我尝试了这一点,看看是否有可能。

    在此处查看(仅限 Chrome)示例:https://s3.amazonaws.com/blur-demo/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2019-02-05
      • 2013-06-27
      相关资源
      最近更新 更多