| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1818 人关注过本帖
标题:如何实现RGB颜色线性渐变
只看楼主 加入收藏
lieren_li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-8-1
收藏
 问题点数:0 回复次数:7 
如何实现RGB颜色线性渐变
我需要根据变量的属性值设置其不同的颜色,通过RGB控制颜色,颜色是由蓝,绿,黄,红平滑渐变的,哪位大侠能告诉我该如何实现?

搜索更多相关主题的帖子: 如何 
2013-08-01 09:28
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
渐变弄个定时器 难道不行?
2013-08-04 12:02
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
程序代码:
<html>
    <head>
        <title>_bccn_</title>
    </head>
   

    <body>
        <script>
            var s = 0;
            (function(){
                var label = document.createElement("label");
                if (!label){
                    return;
                }
               

                label.innerHTML = "_bccn_";
                document.body.appendChild(label);
                label.style.fontSize = "20px";
                label.style.fontWeight = "bold";
               

                setInterval(function(){       

                    var color;
                    switch (s){
                    case 0:
                        color = "red";
                        break;
                    case 1:
                        color = "blue";
                        break;
                    case 2:
                        color = "green";
                        break;
                    default:
                        color = "black";
                        break;
                    }
                    label.style.color = color;
                    ++s;
                    if (4 <= s){
                        s = 0;
                    }
                }, 1000);               

            })();
        </script>
    </body>
</html>
2013-08-04 12:20
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
回复 3楼 诸葛修勤
程序代码:
<!DOCTYPE html>
<html>
    <style type="text/css">
    </style>
    <script>
        var i = 0;
        function onLoad(){
            var label = document.getElementsByTagName("label")[0];
            label.style.fontSize = "14pt";
            label.style.fontWeight = "bolid";
           

           

            setInterval(function(){
                    if (i >= 0xffffff){
                        i = 0;
                    }
                    label.style.color = "#" + i;
                    ++i;
                }, 100);
        }
    </script>
    <body onload="onLoad()">
        <label>Hello body</label>
    </body>
</html>

2013-08-11 13:27
lieren_li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-8-1
收藏
得分:0 
回复 4楼 诸葛修勤
感谢。问题已经解决了。
不过斑竹的回答倒是让我长见识了,只是不知道能不能实现这样
图片附件: 游客没有浏览图片的权限,请 登录注册
的渐变效果?
2013-08-12 22:46
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
回复 5楼 lieren_li
不是一样的吗?

不过想你这样有图片的 直接放图片不是更加省事吗?
2013-08-13 20:38
lieren_li
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-8-1
收藏
得分:0 
回复 6楼 诸葛修勤
不一样吧,色谱范围不懂得怎么控制。
我需要的是根据不同的属性,通过循环画多个箭头,属性值越大就越趋向于暖色调。最后用下面的代码实现了
程序代码:
for循环中:                       
                        var speed = arrList1[i][j];
                        var col, r, g, b;
                        if (speed > 2 && speed < 8) {
                            col = speed - 3;
                            r = 0;
                            g = Math.round(col * 51);
                            b = 255;
                        }
                        else if (speed >= 8 && speed < 13) {
                            col = speed - 8;
                            r = 0;
                            g = 255;
                            b = Math.round(255 - col * 51);
                        }
                        else if (speed >= 13 && speed < 18) {
                            col = speed - 13;
                            r = Math.round(col * 51);
                            g = 255;
                            b = 0;
                        }
                        else if (speed >= 18 && speed < 23) {
                            col = speed - 18;
                            r = 255;
                            g = Math.round(255 - col * 51);
                            b = 0;
                        }
                        else {
                            r = 255;
                            g = 0;
                            b = 0;
                        }
r,g,b作为参数传进去分别作为RGB( R,G,B)的变量
不知道还有没有什么简单方法。。。
2013-08-14 22:13
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
厉害 学习了

梅尚程荀
马谭杨奚







                                                       
2013-08-14 23:10
快速回复:如何实现RGB颜色线性渐变
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021931 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved