js控制从绿色到红色的渐变

先上效果图...

     <style>
     .CT{ 
        bottom: 0px;
        position: absolute;
     }
     .BOX{
        position: relative;
        float:left;
        height:200px;
        width:20px;
     }
     </style>
            <div>
                <div class="BOX">
                    <div class="CT" id="CT10">
                        10
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT20">
                        20
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT30">
                        30
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT40">
                        40
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT50">
                        50
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT60">
                        60
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT70">
                        70
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT80">
                        80
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT90">
                        90
                    </div>
                </div>
                <div class="BOX">
                    <div class="CT" id="CT100">
                        100
                    </div>
                </div>
            </div>

            <script>
 
/*
*求由绿到红的渐变色值,百分比 bili 取值 1...100
*/
function getColorByBaiFenBi(bili){
    //var 百分之一 = (单色值范围) / 50;  单颜色的变化范围只在50%之内
    var one = (255+255) / 100;  
    var r=0;
    var g=0;
    var b=0;

    if ( bili < 50 ) { 
        // 比例小于50的时候红色是越来越多的,直到红色为255时(红+绿)变为黄色.
        r = one * bili;
        g=255;
    }
    if ( bili >= 50 ) {
        // 比例大于50的时候绿色是越来越少的,直到0 变为纯红
        g =  255 - ( (bili - 50 ) * one) ;
        r = 255;
    }
    r = parseInt(r);// 取整
    g = parseInt(g);// 取整
    b = parseInt(b);// 取整

    //console.log("#"+r.toString(16,2)+g.toString(16,2)+b.toString(16,2));
    //return "#"+r.toString(16,2)+g.toString(16,2)+b.toString(16,2);
    //console.log("rgb("+r+","+g+","+b+")" );
    return "rgb("+r+","+g+","+b+")";
        
}

function setStyle(bili,id){
    var a =document.getElementById("CT"+bili); 
    a.style.backgroundColor =  getColorByBaiFenBi( bili) ; 
    a.style.height= 2 * bili +"px";
}
setStyle(10,10);
setStyle(20,20);
setStyle(30,30);
setStyle(40,40);
setStyle(50,50);
setStyle(60,60);
setStyle(70,70);
setStyle(80,80);
setStyle(90,90);
setStyle(100,100);
 

 </script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值