【问题标题】:How to get real color value after opacity不透明度后如何获得真实的颜色值
【发布时间】:2011-04-04 21:09:51
【问题描述】:

我正在使用 jquery 和 css 来淡化菜单项的背景颜色和不透明度。但是,我想让背景颜色成为实际的 css 背景颜色:

例如:

css background color: #eabf60
real color after .70 opacity: #ECCD85

我想这也很大程度上取决于不透明元素背后的背景...

有什么想法吗?

【问题讨论】:

  • 这是个好问题。我认为这是不可能的,但请等待其他成员回复。

标签: jquery css opacity


【解决方案1】:

AFAIK,没有跨浏览器的方式来获取渲染后某个点的颜色。

所以剩下的唯一方法就是模拟这个。获取 CSS 背景颜色和不透明度,然后向上遍历您的父母,直到找到另一个背景条目。

问题:您也无法获取颜色的 RGB 值,只能获取 CSS 字符串。所以如果背景颜色是“蓝色”,你就松了。但大多数时候,您应该得到一个 7 字符的字符串,例如 #ffee00,您可以将其转换为 24 位整数(或从 0 到 255 的 3 个整数)。之后,您可以简单地应用不透明度:

finalRed = parseInt (myRed * opacity + parentRed * ( 1. - opacity ));

【讨论】:

  • 想详细说明你的答案,用 JavaScript 做这个怎么样?
  • @watson:你具体想知道什么?
  • 我现在才明白你在回答中所说的,但你指的是什么7个字符的字符串?另外,您是否假设半透明元素后面的颜色是白色?顺便说一句,我喜欢你的博客。
  • 至于后面的颜色:就是上面公式中的parentRed
猜你喜欢
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2013-02-28
  • 2011-10-06
  • 2016-04-24
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
相关资源
最近更新 更多