【问题标题】:Is there any way to make a web page slightly glow without CSS box-shadow?有没有办法在没有 CSS box-shadow 的情况下让网页微微发光?
【发布时间】:2015-09-10 08:17:36
【问题描述】:

我正在尝试编写一个严格的界面功能高性能

我正在尝试编写一个界面,我会在上面应用像这样的宽泛而微弱的光晕(黑暗的例子,抱歉):


到目前为止我已经尝试过什么

我考虑过outer-glowfiltercanvas 解决方案,但它们似乎都没有提供可行的高性能结果:

  • outer-glow:在技术上完全符合我的要求。

但是 严重会损害性能,尤其是在宽光下。

  • 过滤器:我只知道这样做的模糊过滤器,除了模糊不是真正的发光 - 它会严重模糊边缘。如果我要复制 DOM、模糊副本、将其放在实际 DOM 前面、应用低不透明度 pointer-events:none 并通过 JavaScript 使其与非模糊 DOM 保持同步,它在技术上会完全按照我的意愿行事.

但是将 DOM 翻倍并复制 DOM 中的所有事件不仅会造成很大的混乱,而且可能会严重损害性能。

  • canvas:我可以将 DOM 写入一个覆盖的低不透明度画布并对其进行模糊处理。

但是除非有办法读取整个窗口渲染并将其直接输入到画布中)这涉及一个复杂的、有缺陷的(安全障碍和对功能)将所有 DOM 元素呈现为 SVG 的过程,我仍然必须保持 DOM 的画布版本与实际 DOM 同步,这将是一团糟。


我的问题

所以我没有想法。 有什么方法可以让我的界面以一种高效的方式发光吗?

我对此并不抱太大希望,但我确实想联系一下,看看我没有想到的过滤器、画布或其他一些技巧是否可以在 Web 应用程序中实现这种发光效果,同时保留表现。

【问题讨论】:

  • 您可以添加透明图像或添加彩色绝对定位 <div> 然后设置 CSS opacity:0.5; filter:alpha(opacity=50); 或其他东西。
  • @PHPglue 当界面变换,过渡,滚动等时,顶部的发光将无法与界面的实际颜色或部分对应..它就像一个普通的单色雾而不是发光效果。我正在尝试将辉光与实际的界面颜色和组件相对应。

标签: javascript html css dom canvas


【解决方案1】:

这可能不是您真正想要的路线,但它能够产生您想要获得的结果。这种方法肯定是您可以采用的最高效的方法,但您当然必须更新设计。

设计更新方法
您可以从设计方面而不是编码方面来解决这个问题。所以而不是编码一些东西。您将弄清楚元素的最终目标颜色是什么并修改您的 css。您还可能需要修改一些图像。

【讨论】:

  • 一个有趣的可能性。
  • 通常当我有一个客户想要在短时间内更改配色方案的网站时,我会做这种事情。所以就像他们希望他们的网站在乳腺癌宣传周中呈现出粉红色的色调。我基本上只是有一个粉红色的 css 文件坐在那里,并在活动期间将其换掉。我还发现在与对位置和颜色深浅非常具体的营销/设计公司合作时,它很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-20
  • 1970-01-01
  • 2021-10-29
  • 2011-11-25
  • 2021-08-17
  • 2011-11-03
  • 1970-01-01
相关资源
最近更新 更多