javascript - webkit-filter 后获取元素背景色

标签 javascript jquery html css

在初始颜色通过 CSS 上的 -webkit-filter 运行后,我试图从屏幕上的元素获取颜色。并将该颜色应用到另一个元素上。

HTML

   <div id="Div1" style="background-color: rgb(166,187,207);"></div>
   <br>
   <div id="Div2"></div>

CSS

  #Div1{
    height: 100px;
    width: 100px;
    -webkit-filter: saturate(5);
  }

Javascript

   var inDiv1 = document.getElementById("Div1");
   var dColorx = inDiv1.style.backgroundColor;

   var inDiv2 = document.getElementById("Div2");
   inDiv2.innerHTML += '<svg width="400" height="110">'+
                       '<rect width="300" height="100" '+
                       'style="fill:'+ dColorx +';'+
                       'stroke-width:3;stroke:rgb(0,0,0)"></svg>';

目前我需要 Div2 内部的矩形与 Div1 的颜色相同。

 Div1 default color rgb(166,187,207).
 Div1 post filter color rgb(94,199,255). <-- need to get this color

我还使用了在 stackoverflow 上找到的 RGB 到 HSL 转换器, 但是颜色差了很多。如果我说得不对,我深表歉意。我整晚都在努力让它工作。

如果有人能帮助我,我将不胜感激! 示例:http://jsfiddle.net/JfKEL/

最佳答案

不确定在准确应用滤镜后如何获得颜色,但您可以为 svg 元素使用相同的颜色并重新应用滤镜。您的 svg 输出将是这样的:

<svg width="400" height="110">
    <filter id="saturate">
        <feColorMatrix in="SourceGraphic" type="saturate" values="5" />
    </filter>
    <g filter="url(#saturate)">
        <rect width="300" height="100" '+ 'style="fill:'+ dColorx + '; stroke-width:3;stroke:rgb(0,0,0)">
    </g>
</svg>

Working jsFiddle

关于javascript - webkit-filter 后获取元素背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24956200/

相关文章:

javascript - 传单:连接线内可拖动标记的架构

javascript - Div鼠标悬停问题

javascript - 很好地使用 requirejs 或 grunt 与 concat/minification 来获得 angularjs 性能

javascript - 在有限的时间内暂时禁用元素/图像的实时点击

javascript - 调用await jquery.ajax时如何获取数据、textStatus和jqXHR?

javascript - 处理 imageData 的 Web worker 使用 Firefox 而不是 Chrome

javascript - Fancybox 显示相同的图像

jquery mobile 需要刷新才能正常工作

javascript - 如何计算使用 jQuery 动态添加到页面的列表项的数量?

jquery - Bootstrap 3 导航栏移动 View - ul 和同一行上的链接不是新行