JavaScript / jQuery毕业去饱和HEX颜色

时间:2012-11-20 23:22:15

标签: javascript jquery css3 colors hex

从(比方说)#ff0011开始我想逐渐扩展我页面中每个元素div的背景颜色。

结果应该是这样的:

    <div class="div-1"></div> // background-color:#ff0011;
    <div class="div-2"></div> // background-color:#ff0011 -0.2% saturation;
    <div class="div-3"></div> // background-color:#ff0011 -0.3% saturation;
    <div class="div-4"></div> // background-color:#ff0011 -0.4% saturation;
    <div class="div-5"></div> // background-color:#ff0011 -0.5% saturation;

希望这个例子很清楚,我真的不知道从哪里开始这样做所以任何链接教程都会非常感激。

编辑:我正在谈论毕业的DESATURATE颜色

4 个答案:

答案 0 :(得分:2)

HTML:

<div class="div-1 shaded"></div> // background-color:#ff0011;
<div class="div-2 shaded"></div> // background-color:#ff0011 0.2% lighter;
<div class="div-3 shaded"></div> // background-color:#ff0011 0.3% lighter;
<div class="div-4 shaded"></div> // background-color:#ff0011 0.4% lighter;
<div class="div-5 shaded"></div> // background-color:#ff0011 0.5% lighter;

JS:

$('.shaded').each(function(i){
    $(this).css('opacity', (1 - i/10));
});

这是Sushanth提出的a fiddle demonstrating this

答案 1 :(得分:2)

使用CSS3 hsl是一个选项吗?你可以轻松(和REAL)控制来计算更亮或更暗的颜色。 https://developer.mozilla.org/en-US/docs/CSS/color_value#hsl()

它不适用于IE8及更低版本,但在现代浏览器中得到广泛支持。

答案 2 :(得分:1)

好的,我发现了如何做到这一点,感谢大家,但这是我需要的代码:

var i = 50;
    $.each($('div'),function(){
    $(this).css({'background-color':'hsl(145,37%,'+i+'%)'});
    i++
    });

感谢@KKetch,他给了我css3 hsl()示例!

答案 3 :(得分:0)

您可以使用jQuery或Javascript来实现这一点..

使用Javascript

var elems = document.getElementsByTagName('div');

for(var i =0;i< elems.length ; i++){
      var op = 1 - (i/10);
      var fil = 100 - (i * 10);
      elems[i].style.opacity = op;
     elems[i].style.filter = "alpha(opacity=" + fil + ")";
}

HTML&amp; CSS

<div class="div"></div>
<div class="div"></div> 
<div class="div"></div> 
<div class="div"></div> 
<div class="div"></div> ​

.div
{
    background-color: #ff0011;
    width:100px;
    height:50px;
    border : 1px solid green;
}​

<强> Check Fiddle