比如
一个颜色 255,0,0 需要旋转 40 度先循环出 255,0,0 在那一个色彩块区 查询位置位00+40=40度colorWheel['30'] = [255,102,0,24];
colorWheel['45'] = [255,128,0,30.11764705882353];没有40度 怎么能得出 30-45间的 40的颜色????大家能给个更好的方法吗??? 多谢了!!多谢了! 另外地址
http://community.csdn.net/Expert/topic/3435/3435309.xml?temp=.1597711

解决方案 »

  1.   

    <SCRIPT>
    var sInitColor = null;
    function callColorDlg(){if (sInitColor == null) 
            var sColor = dlgHelper.ChooseColorDlg();
    else
            var sColor = dlgHelper.ChooseColorDlg(sInitColor);
            sColor = sColor.toString(16);
    if (sColor.length < 6) {
      var sTempString = "000000".substring(0,6-sColor.length);
      sColor = sTempString.concat(sColor);
    }
    sColor = "#" + sColor
    alert(sColor)
    document.body.style.color=sColor;//颜色应用
    }
    </SCRIPT>               
    <input ID="ofntColor" onclick="callColorDlg()" type=button value="请选择颜色">
    <OBJECT id=dlgHelper CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px"></OBJECT>huerreson in 51js now
      

  2.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Color类实例</title>
    </head><body>
    <script>
    //+--------------------------------------------------------------------
    //
    //       Function:  Color
    //
    //      Arguments:  无
    //
    //         Return:  无
    //
    //    Description:  一个实现网页颜色各种功能模块的类
    //
    //+--------------------------------------------------------------------
    function Color()
    {
      this.r = 0; //**  红色,范围为0至125
      this.g = 0; //**  绿色,范围为0至125
      this.b = 0; //**  蓝色,范围为0至125
      
      //+--------------------------------------------------------------------
      //
      //       Function:  getHec
      //
      //      Arguments:  没有
      //
      //         Return:  本对象的十六进制表示法,比如#CECECE
      //
      //    Description:  通过调用Color.getHec来返回本身的十六进制表示法
      //
      //+--------------------------------------------------------------------
      this.getHec = function()
      {
        return Color.getHec(this);
      }
      
      //+--------------------------------------------------------------------
      //
      //       Function:  getRGB
      //
      //      Arguments:  没有
      //
      //         Return:  本对象的RGB表示法,比如rgb(255,255,255)
      //
      //    Description:  通过调用Color.getRGB返回本身的RGB表示法
      //
      //+--------------------------------------------------------------------
      this.getRGB = function()
      {
        return Color.getRGB(this);
      }
      
      //+--------------------------------------------------------------------
      //
      //       Function:  toString
      //
      //      Arguments:  没有
      //
      //         Return:  返回本身的十六进制表示法
      //
      //    Description:  重写对象的toString方法
      //
      //+--------------------------------------------------------------------
      this.toString = function()
      {
        return this.getHec();
      }
    }//+--------------------------------------------------------------------
    //
    //       Function:  getColor
    //
    //      Arguments:  红、绿、蓝的十进制数值(范围为0-255)
    //
    //         Return:  相应的Color对象,如果R,G,B不能构成一个合法Color对象
    //                  将会返回一个默认的Color对象,它的RGB为rgb(0,0,0)
    //
    //    Description:  通过传入的红、绿、蓝十进制数值返回相应的Color对象
    //
    //+--------------------------------------------------------------------
    Color.getColor = function(R,G,B)
    {
      R = parseInt(R);
      G = parseInt(G);
      B = parseInt(B);
      
      //**  注意下边的R != R,只有R为NaN的时候才成立,因为NaN是唯一不等于自身的常数
      //**  下一行判断R、G、B是否能够构成一个合法的Color对象
      if((R != R) || (G != G) || (B != B) || R < 0 || R > 255 || G < 0 || G > 255 || B < 0 || B > 255)
      {
        return null; //** 如果不能够构成返回null
      }
      else
      {
          //** 如果能够构成返回相应的Color对象
        var NewColor = new Color;
        NewColor.r = R;
        NewColor.g = G;
        NewColor.b = B;
        return NewColor;
      }
    }//+--------------------------------------------------------------------
    //
    //       Function:  getHec
    //
    //      Arguments:  一个Color对象
    //
    //         Return:  参数对象的十六进制表示法,如果传入参数不合法,返回
    //                  默认的Color对象,RGB为rgb(0,0,0)
    //
    //    Description:  能过传入一个Color对象返回十六进制表示法
    //
    //+--------------------------------------------------------------------
    Color.getHec = function(PColor)
    {
        //** 判断参数PColor是否为类Color的一个实例
      if(!(PColor instanceof Color))
      {
        return "#000000"; //** 如果PColor不是Color类的实例,返回默认十六进制表示法#000000
      }
      //** 如果PColor是Color类的实例,生成一个临时的Color实例tmpColor
      var tmpColor = Color.getColor(PColor.r,PColor.g,PColor.b);
      if(tmpColor == null)
      {
        return "#000000";//** 当PColor本身的r、g、b不合法,返回默认十六进制表示法#000000
      }
      else
      {
          //** 如果PColor合法,返回PColor的十六进制表示法
        //** 因为每一个色的表示有两位,就算值为1也必须以01表示,因此当该色的数值小于10给数
        //** 值前边添加一个0,否则调用Color.getHecStr得到十六进制的字符串
        var Red = PColor.r < 10 ? "0" + PColor.r : Color.getHecStr(PColor.r);    
        var Green = PColor.g < 10 ? "0" + PColor.g : Color.getHecStr(PColor.g);
        var Blue = PColor.b < 10 ? "0" + PColor.b : Color.getHecStr(PColor.b);
        return "#" + Red + Green + Blue;
      }
    }//+--------------------------------------------------------------------
    //
    //       Function:  getRGB
    //
    //      Arguments:  一个Color对象
    //
    //         Return:  PColor参数的RGB表示法,比如rgb(0,0,0)
    //
    //    Description:  通过传入一个Color对象返回该对象的RGB表示法,如果对
    //                  象不合法,返回默认RGB表示法rgb(0,0,0)
    //
    //+--------------------------------------------------------------------
    Color.getRGB = function(PColor)
    {
      //** 判断参数PColor是否为类Color的一个实例
      if(!(PColor instanceof Color))
      {
        return "rgb(0,0,0)";//** 如果PColor不是Color类的实例,返回默认RGB表示法rgb(0,0,0)
      }
      var tmpColor = Color.getColor(PColor.r,PColor.g,PColor.b);
      if(tmpColor == null)
      {
        //** 当得到的临时Color对象为null时修改PColor的值为默认值0
        PColor.r = 0;
        PColor.g = 0;
        PColor.b = 0;
      }
      return "rgb(" + PColor.r + "," + PColor.g + "," + PColor.b + ")";
    }//+--------------------------------------------------------------------
    //
    //       Function:  Create
    //
    //      Arguments:  1. 一个Color类的对象
    //                  2. 十六进制表示法
    //                  3. R、G、B十进制数值
    //
    //         Return:  1. 一个Color类的对象,返回跟参数对象相同的Color对象
    //                  2. 十六进制表示法,比如#000000,返回相应的Color对象
    //                  3. R、G、B十进制数值,返回相应的Color对象
    //
    //    Description:  新建一个Color对象,参数是不指明的,然后从arguments
    //                  数组来判断参数的类型,关于arguments可以参考《Windows
    //                  脚本技术》
    //
    //+--------------------------------------------------------------------
    Color.Create = function()

        //** 得到arguments对象
      var Arg = arguments;
      
      //** 判断参数的个数,必须为1或者为3,否则返回默认Color对象(rgb为rgb(0,0,0))
      if(Arg.length != 1 && Arg.length != 3)
      {
        return new Color;
      }
      //** 当参数个数为0,则有可能参数是1和2的情况(查看函数说明Arguments)
      if(Arg.length == 1)
      {
        var Param = Arg[0];
        //** 当参数Param为Color对象,则为1情况
        if(Param instanceof Color)
        {
          var tmpColor = Color.getColor(Param.r,Param.g,Param.b);
          if(tmpColor == null)
          {
            return new Color;
          }
          return tmpColor;
        }
        //** 当参数为字符串,则有可能为2情况
        if(typeof(Param) == "string")
        {
            //** 利用正则表达式判断是否为十进制表示法
          var re = /^#[0-9A-Fa-f]{6}$/;
          if(re.test(Param))
          {
            var NewColor = new Color;
            NewColor.r = parseInt(Param.substr(1,2),16);
            NewColor.g = parseInt(Param.substr(3,2),16);
            NewColor.b = parseInt(Param.substr(5,2),16);
            return NewColor;
          }
          
      

  3.   

    //** 利用正则表达式判断是否为RGB表示法
          re = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/g;
          if(re.test(Param))
          {
            var R = Param.replace(re,"$1");
            var G = Param.replace(re,"$2");
            var B = Param.replace(re,"$3");
            var tmpColor = Color.getColor(R,G,B);
            if(tmpColor == null)
            {
              return new Color;
            }
            return tmpColor;
          }
        }
        //** 如果参数没有一个合法,返回默认Color对象
        return new Color;
      }
      else
      {
          //** 得到三种颜色的值
        var R = Arg[0];
        var G = Arg[1];
        var B = Arg[2];
        //** 利用正则表达式判断是否为三个参数全部为数值,如果不是返回默认Color对象
        if(!(/^\d{1,3}$/.test(R) && /^\d{1,3}$/.test(G) || /^\d{1,3}$/.test(B)))
        {
          return  new Color;
        }
        //** 如果三种颜色为数值,得到该数值相应的Color对象
        var tmpColor = Color.getColor(R,G,B); //** 如果得到的临时对象为null返回默认Color对象
        if(tmpColor == null)
        {
          return new Color;
        }
        //** 返回Color对象
        return tmpColor;
      }
    }//+--------------------------------------------------------------------
    //
    //       Function:  getHecStr
    //
    //      Arguments:  十进制数值
    //
    //         Return:  十六进制数值字符串
    //
    //    Description:  把传入的十进制数值转换成十六进制
    //
    //+--------------------------------------------------------------------
    Color.getHecStr = function(Num)
    {
      //+--------------------------------------------------------------------
      //
      //       Function:  getHec
      //
      //      Arguments:  十进制数值(范围在0-15之间)
      //
      //         Return:  十六进制数值字符串,如果范围不对返回原数值的字符串
      //
      //    Description:  把传入的十进制数值转换成十六进制,此函数为内部函数,
      //                  只能在Color.getHecStr里调用。
      //
      //+--------------------------------------------------------------------
      function getHec(Num)
      {
        
        if(Num < 10 || Num > 15)
        {
          return Num.toString();
        }
        switch(Num)
        {
          case 10: return "A";
          case 11: return "B";
          case 12: return "C";
          case 13: return "D";
          case 14: return "E";
          case 15: return "F";
        }
      }
      Num = parseInt(Num);
      if(Num != Num || Num < 0)
      {
        return "";
      }
      var NumStr = "";
      //** 进行十进制向十六进制的转换
      while(Num > 15)
      {
        NumStr = getHec(Num % 16) + NumStr;
        Num = (Num - Num % 16) / 16;
      }
      NumStr = getHec(Num) + NumStr;
      return NumStr;
    }
    //** 用平常方法声明一个对象
    window.document.write("------------------以下是用声明的对象的使用方法----------------<br>");
    var NColor = new Color();
    NColor.r = 255;
    NColor.g = 255;
    NColor.b = 255;
    window.document.write("得到十六进制的表示法:" + NColor.getHec() + "<br>");
    window.document.write("得到RGB的表示法:" + NColor.getRGB() + "<br>");window.document.write("------------------以下是用Create新建对象的使用方法----------------<br>");
    NColor.g = 0;
    NColor.b = 0;
    NColor = Color.Create(NColor);window.document.write("参数为Color对象得到十六进制的表示法:" + NColor.getHec() + "<br>");
    window.document.write("参数为Color对象得到RGB的表示法:" + NColor.getRGB() + "<br>");NColor = Color.Create("#EFEFEF");
    window.document.write("参数为十六进制字符串#EFEFEF得到十六进制的表示法:" + NColor.getHec() + "<br>");
    window.document.write("参数为十六进制字符串#EFEFEF得到RGB的表示法:" + NColor.getRGB() + "<br>");NColor = Color.Create("rgb(123,123,123)");
    window.document.write("参数为RGB字符串rgb(123,123,123)得到十六进制的表示法:" + NColor.getHec() + "<br>");
    window.document.write("参数为RGB字符串rgb(123,123,123)#EFEFEF得到RGB的表示法:" + NColor.getRGB() + "<br>");NColor = Color.Create(200,200,200);
    window.document.write("参数为数值200,200,200得到十六进制的表示法:" + NColor.getHec() + "<br>");
    window.document.write("参数为数值200,200,200得到RGB的表示法:" + NColor.getRGB() + "<br>");
    </script>
    </body></html>
      

  4.   

    <HTML> 
    <HEAD> 
    <TITLE>颜色颜色选取器</TITLE> 
    <META content="text/html; charset=gb2312" http-equiv=Content-Type> 
    <STYLE type=text/css>TD { 
        FONT-SIZE: 10.8pt 

    BODY { 
        FONT-SIZE: 10.8pt 

    BUTTON { 
        WIDTH: 5em 

    </STYLE> <SCRIPT language=JavaScript> 
    var SelRGB = ''; 
    var DrRGB = ''; 
    var SelGRAY = '120'; var hexch = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); function ToHex(n) 
    {    var h, l;     n = Math.round(n); 
        l = n % 16; 
        h = Math.floor((n / 16)) % 16; 
        return (hexch[h] + hexch[l]); 
    } function DoColor(c, l) 
    { var r, g, b; r = '0x' + c.substring(1, 3); 
    g = '0x' + c.substring(3, 5); 
    b = '0x' + c.substring(5, 7); if(l > 120) 

    l = l - 120; r = (r * (120 - l) + 255 * l) / 120; 
    g = (g * (120 - l) + 255 * l) / 120; 
    b = (b * (120 - l) + 255 * l) / 120; 
    }else 

    r = (r * l) / 120; 
    g = (g * l) / 120; 
    b = (b * l) / 120; 
    } return '#' + ToHex(r) + ToHex(g) + ToHex(b); 
    } function EndColor() 
    { var i; if(DrRGB != SelRGB) 

    DrRGB = SelRGB; 
    for(i = 0; i <= 30; i ++) 
    GrayTable.rows(i).bgColor = DoColor(SelRGB, 240 - i * 8); 
    } SelColor.value = DoColor(RGB.innerText, GRAY.innerText); 
    ShowColor.bgColor = SelColor.value; 

    </SCRIPT> <SCRIPT event=onclick for=ColorTable language=JavaScript> 
    SelRGB = event.srcElement.bgColor; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onmouseover for=ColorTable language=JavaScript> 
    RGB.innerText = event.srcElement.bgColor; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onmouseout for=ColorTable language=JavaScript> 
    RGB.innerText = SelRGB; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onclick for=GrayTable language=JavaScript> 
    SelGRAY = event.srcElement.title; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onmouseover for=GrayTable language=JavaScript> 
    GRAY.innerText = event.srcElement.title; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onmouseout for=GrayTable language=JavaScript> 
    GRAY.innerText = SelGRAY; 
    EndColor(); 
    </SCRIPT> <SCRIPT event=onclick for=Ok language=JavaScript> 
    window.returnValue = SelColor.value; 
    window.close(); 
    </SCRIPT> <META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD> 
    <BODY bgColor=menu> 
    <DIV align=center> 
    <CENTER> 
    <TABLE border=0 cellPadding=0 cellSpacing=10> 
    <TBODY> 
    <TR> 
    <TD> 
    <TABLE border=0 cellPadding=0 cellSpacing=0 id=ColorTable 
    style="CURSOR: hand"> 
    <SCRIPT language=JavaScript> 
    function wc(r, g, b, n) 

        r = ((r * 16 + r) * 3 * (15 - n) + 0x80 * n) / 15; 
        g = ((g * 16 + g) * 3 * (15 - n) + 0x80 * n) / 15; 
        b = ((b * 16 + b) * 3 * (15 - n) + 0x80 * n) / 15;     document.write('<TD BGCOLOR=#' + ToHex(r) + ToHex(g) + ToHex(b) + ' height=8 width=8></TD>'); 
    } var cnum = new Array(1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0); for(i = 0; i < 16; i ++) 

    document.write('<TR>'); 
    for(j = 0; j < 30; j ++) 

        n1 = j % 5; 
        n2 = Math.floor(j / 5) * 3; 
        n3 = n2 + 3;     wc((cnum[n3] * n1 + cnum[n2] * (5 - n1)), 
            (cnum[n3 + 1] * n1 + cnum[n2 + 1] * (5 - n1)), 
            (cnum[n3 + 2] * n1 + cnum[n2 + 2] * (5 - n1)), i); 
    } document.writeln('</TR>'); 

    </SCRIPT> <TBODY></TBODY></TABLE></TD> 
    <TD> 
    <TABLE border=0 cellPadding=0 cellSpacing=0 id=GrayTable 
    style="CURSOR: hand"> 
    <SCRIPT language=JavaScript> 
    for(i = 255; i >= 0; i -= 8.5) 
    document.write('<TR BGCOLOR=#' + ToHex(i) + ToHex(i) + ToHex(i) + '><TD TITLE=' + Math.floor(i * 16 / 17) + ' height=4 width=20></TD></TR>'); 
    </SCRIPT> <TBODY></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV> 
    <DIV align=center> 
    <CENTER> 
    <TABLE border=0 cellPadding=0 cellSpacing=10> 
    <TBODY> 
    <TR> 
    <TD align=middle rowSpan=2>选中色彩 
    <TABLE border=1 cellPadding=0 cellSpacing=0 height=30 id=ShowColor 
    width=40> 
    <TBODY> 
    <TR> 
    <TD></TD></TR></TBODY></TABLE></TD> 
    <TD rowSpan=2>基色: <SPAN id=RGB></SPAN><BR>亮度: <SPAN 
    id=GRAY>120</SPAN><BR>代码: <INPUT id=SelColor size=7></TD> 
    <TD><BUTTON type=reset>重选</BUTTON></TD></TR> 
    <TR> 
    <TD><BUTTON 
    onclick=window.close();>关闭</BUTTON> 
    </TD> 
    </TR> 
    </TBODY> 
    </TABLE> 
    </CENTER> 
    </DIV> 
    </BODY> 
    </HTML>
      

  5.   

    <HTML><HEAD><TITLE>Typhoon Start JavaScript Fairyland</TITLE>
    <STYLE type=text/css>#subtext {
        BACKGROUND-COLOR: #cccccc; FONT-FAMILY: helvetica,arial; FONT-SIZE: 8pt; layer-background-color: #CCCCCC
    }
    #title {
        FONT-FAMILY: helvetica,arial; FONT-SIZE: 13pt; FONT-WEIGHT: bold
    }
    #red {
        BACKGROUND-IMAGE: url(redback.gif); CLIP: rect(0px 256px 10px 0px); HEIGHT: 10px; LEFT: 54px; POSITION: absolute; TOP: 100px; VISIBILITY: visible; WIDTH: 256px; Z-INDEX: 1; layer-background-image: url(redback.gif)
    }
    #green {
        BACKGROUND-IMAGE: url(greenback.gif); CLIP: rect(0px 256px 10px 0px); HEIGHT: 10px; LEFT: 54px; POSITION: absolute; TOP: 120px; VISIBILITY: visible; WIDTH: 256px; Z-INDEX: 1; layer-background-image: url(greenback.gif)
    }
    #blue {
        BACKGROUND-IMAGE: url(blueback.gif); CLIP: rect(0px 256px 10px 0px); HEIGHT: 10px; LEFT: 54px; POSITION: absolute; TOP: 140px; VISIBILITY: visible; WIDTH: 256px; Z-INDEX: 1; layer-background-image: url(blueback.gif)
    }
    #redSlider {
        BACKGROUND-IMAGE: url(scroll-boxh.gif); CLIP: rect(0px 8px 14px 0px); HEIGHT: 14px; LEFT: 50px; POSITION: absolute; TOP: 98px; VISIBILITY: visible; WIDTH: 8px; Z-INDEX: 2; layer-background-image: url(scroll-boxh.gif)
    }
    #greenSlider {
        BACKGROUND-IMAGE: url(scroll-boxh.gif); CLIP: rect(0px 8px 14px 0px); HEIGHT: 14px; LEFT: 50px; POSITION: absolute; TOP: 118px; VISIBILITY: visible; WIDTH: 8px; Z-INDEX: 2; layer-background-image: url(scroll-boxh.gif)
    }
    #blueSlider {
        BACKGROUND-IMAGE: url(scroll-boxh.gif); CLIP: rect(0px 8px 14px 0px); HEIGHT: 14px; LEFT: 50px; POSITION: absolute; TOP: 138px; VISIBILITY: visible; WIDTH: 8px; Z-INDEX: 2; layer-background-image: url(scroll-boxh.gif)
    }
    #display {
        BACKGROUND-COLOR: #000000; HEIGHT: 50px; LEFT: 320px; POSITION: absolute; TOP: 100px; VISIBILITY: visible; WIDTH: 50px; Z-INDEX: 1; layer-background-color: #000000
    }
    #hexValue {
        HEIGHT: 20px; LEFT: 54px; POSITION: absolute; TOP: 160px; VISIBILITY: visible; WIDTH: 320px; Z-INDEX: 1
    }
    #titleBar {
        BACKGROUND-COLOR: #dddddd; HEIGHT: 20px; LEFT: 54px; POSITION: absolute; TOP: 70px; WIDTH: 320px; Z-INDEX: 1; layer-background-color: #DDDDDD
    }
    #colorTable {
        HEIGHT: 200px; LEFT: 380px; POSITION: absolute; TOP: 70px; VISIBILITY: visible; WIDTH: 320px; Z-INDEX: 1
    }
    </STYLE><SCRIPT language=JavaScript><!-- Begin
    function init() {
    ns4 = (document.layers)?true:false;
    ie4 = (document.all)?true:false;
    sliderMin = 50;
    sliderMax = 306;
    rValue=0;
    gValue=0;
    bValue=0;
    r1 = '0';
    r2 = '0';
    g1 = '0';
    g2 = '0';
    b1 = '0';
    b2 = '0';
    Rgb = '0';
    rGb = '0';
    rgB = '0';
    rActive = false;
    gActive = false;
    bActive = false;
    document.onmousedown = mouseDown
    document.onmousemove = mouseMove
    document.onmouseup = mouseUp
    if (ns4) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
    if (ns4) {
    domRed = document.redSlider;
    domRed.xpos = parseInt(domRed.left);
    domRed.ypos = parseInt(domRed.top);
    domRed.w = domRed.clip.width;
    domRed.h = domRed.clip.height;
    domGreen = document.greenSlider;
    domGreen.xpos = parseInt(domGreen.left);
    domGreen.ypos = parseInt(domGreen.top);
    domGreen.w = domGreen.clip.width;
    domGreen.h = domGreen.clip.height;
    domBlue = document.blueSlider;
    domBlue.xpos = parseInt(domBlue.left);
    domBlue.ypos = parseInt(domBlue.top);
    domBlue.w = domBlue.clip.width;
    domBlue.h = domBlue.clip.height;
    domDisplay = document.display;
    domValue = document.hexValue.document.frmValue.valueDisp;
    domredValue = document.hexValue.document.frmValue.RgbDisp;
    domgreenValue = document.hexValue.document.frmValue.rGbDisp;
    domblueValue = document.hexValue.document.frmValue.rgBDisp;
    }
    else {
    domRed = redSlider.style;
    domRed.xpos = redSlider.offsetLeft;
    domRed.ypos = redSlider.offsetTop;
    domRed.w = redSlider.clientWidth;
    domRed.h = redSlider.clientHeight;
    domGreen = greenSlider.style;
    domGreen.xpos = greenSlider.offsetLeft;
    domGreen.ypos = greenSlider.offsetTop;
    domGreen.w = greenSlider.clientWidth;
    domGreen.h = greenSlider.clientHeight;domBlue = blueSlider.style;
    domBlue.xpos = blueSlider.offsetLeft;
    domBlue.ypos = blueSlider.offsetTop;
    domBlue.w = blueSlider.clientWidth;
    domBlue.h = blueSlider.clientHeight;
    domDisplay = display;
    domValue = frmValue.valueDisp;
    domredValue = frmValue.RgbDisp;
    domgreenValue = frmValue.rGbDisp;
    domblueValue = frmValue.rgBDisp;
    }
    hexArray = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
    }
    function mouseDown(e) {
    if ((ns4 && e.which!=1) || (ie4 && event.button!=1)) return true;
    var x = (ns4)? e.pageX : event.x+document.body.scrollLeft;
    var y = (ns4)? e.pageY : event.y+document.body.scrollTop;
    if (x > domRed.xpos && x < domRed.xpos+domRed.w && y > domRed.ypos && y < domRed.ypos+domRed.h){ rActive = true; dragObject = domRed; }
    if (x > domGreen.xpos && x < domGreen.xpos+domGreen.w && y > domGreen.ypos && y < domGreen.ypos+domGreen.h){ gActive = true; dragObject = domGreen; }
    if (x > domBlue.xpos && x < domBlue.xpos+domBlue.w && y > domBlue.ypos && y < domBlue.ypos+domBlue.h){ bActive = true; dragObject = domBlue; }
    if (rActive==true || gActive==true || bActive==true){
    if (x>=dragObject.xpos && x<=dragObject.xpos+dragObject.w) {
    dragObject.dragOffsetX = x-dragObject.xpos
    }
    return false
    }
    else {
    return true
       }
    }
      

  6.   

    function mouseMove(e) {
    var x = (ns4)? e.pageX : event.x+document.body.scrollLeft;
    var y = (ns4)? e.pageY : event.y+document.body.scrollTop;
    if (rActive) {
    rMoveTo = x-dragObject.dragOffsetX;
    if (rMoveTo > sliderMax) rMoveTo = 306;
    if (rMoveTo < sliderMin) rMoveTo = 50;
    domRed.xpos = rMoveTo;
    domRed.left = domRed.xpos;
    rValue = (domRed.xpos+4)-50;
    calcValue(rMoveTo-50, 'red');
    }
    if (gActive) {
    gMoveTo = x-dragObject.dragOffsetX;
    if (gMoveTo > sliderMax) gMoveTo = sliderMax;
    if (gMoveTo < sliderMin) gMoveTo = sliderMin;
    domGreen.xpos = gMoveTo;
    domGreen.left = domGreen.xpos;
    gValue = (domGreen.xpos+4)-50;
    calcValue(gMoveTo-50, 'green');
    }
    if (bActive) {
    bMoveTo = x-dragObject.dragOffsetX;
    if (bMoveTo > sliderMax) bMoveTo = sliderMax;
    if (bMoveTo < sliderMin) bMoveTo = sliderMin;
    domBlue.xpos = bMoveTo;
    domBlue.left = domBlue.xpos;
    bValue = (domBlue.xpos+4)-50;
    calcValue(bMoveTo-50, 'blue');
    }
    return true
    }
    function mouseUp(e) {
    var x = (ns4)? e.pageX : event.x+document.body.scrollLeft
    var y = (ns4)? e.pageY : event.y+document.body.scrollTop
    rActive = false;
    gActive = false;
    bActive = false;
    return true
    }
    function calcValue(base, color) {
    base -= 1;
    if (base < 16) { first = 0; }
    else { first = parseInt(base/16); }
    if (base < 0 ) { second = 0; base = 0; }
    else { second = parseInt(base%16); }
    c1=hexArray[first];
    c2=hexArray[second]; 
    if (color == 'red') { r1 = c1; r2 = c2; Rgb=base; }
    else if (color == 'green') { g1 = c1; g2 = c2; rGb=base; }
    else { b1 = c1; b2 = c2; rgB=base; }
    domValue.value = eval('"'+r1+r2+g1+g2+b1+b2+'"');
    domredValue.value = eval('"'+Rgb+'"');
    domgreenValue.value = eval('"'+rGb+'"');
    domblueValue.value = eval('"'+rgB+'"');
    if (ns4) { domDisplay.bgColor = eval('"#'+r1+r2+g1+g2+b1+b2+'"'); }
    else { domDisplay.style.backgroundColor = eval('"#'+r1+r2+g1+g2+b1+b2+'"'); }
    return true;
    }
    function manualSet(value,color) {
    if (value < 0) value=0;
    if (value > 255) value=255;
    ++value;
    calcValue(value,color);
    if (color == 'red'){ domRed.xpos = value+sliderMin-4; domRed.left = domRed.xpos; }
    else if (color == 'green'){ domGreen.xpos = value+sliderMin-4; domGreen.left = domGreen.xpos; }
    else { domBlue.xpos = value+sliderMin-4; domBlue.left = domBlue.xpos; }
    }
    function convertHex(hexString) {
    if(hexString == null) hexString = domValue.value;
    inputHexArray = new Array(6);
    for(i=0;i<=5;++i) {
    inputHexArray[i] = hexString.charAt(i);
    }
    for(i=0;i<=5;++i) {
    tempHexVal = inputHexArray[i];
    for(j=0;j<=15;++j) {
    if(tempHexVal == hexArray[j]) tempHexVal = j;
    }
    inputHexArray[i] = tempHexVal;
    }
    Rgb = (inputHexArray[0]*16)+inputHexArray[1]+1;
    calcValue(Rgb,'red');
    manualSet(Rgb,'red');
    rGb = (inputHexArray[2]*16)+inputHexArray[3]+1;
    calcValue(rGb,'green');
    manualSet(rGb,'green');
    rgB = (inputHexArray[4]*16)+inputHexArray[5]+1;
    calcValue(rgB,'blue');
    manualSet(rgB,'blue');
    }
    // End -->
    </SCRIPT><META content="text/html; charset=gb2312" http-equiv=Content-Type>
    <META content="MSHTML 5.00.3315.2870" name=GENERATOR></HEAD>
    <BODY aLink=#33ff33 bgColor=#ffffff link=#33ff33 onload=init() text=#999999 
    vLink=#33ff33>
    <DIV id=red></DIV>
    <DIV id=green></DIV>
    <DIV id=blue></DIV>
    <DIV id=redSlider></DIV>
    <DIV id=greenSlider></DIV>
    <DIV id=blueSlider></DIV>
    <DIV id=colorTable>
    <TABLE border=0 cellPadding=0 cellSpacing=1>
      <TBODY>
      <TR>
        <TD align=middle colSpan=18 id=subtext>Standard 216 Color Palette</TD></TR>
      <SCRIPT>
    <!--
    clr = new Array('00','33','66','99','CC','FF');for(k=0;k<6;++k){
    for(j=0;j<6;){
    document.write('<tr>\n');
    for(m=0;m<3;++m){
    for(i=0;i<6;++i){
    document.write('<td bgcolor=#'+clr[k]+clr[j+m]+clr[i]+'>');
    document.write('<a href="javascript:void(null)" ');
    document.write('onClick="convertHex(\''+clr[k]+clr[j+m]+clr[i]+'\')\;">');
    document.write('<img src=blankgif width=10 height=10 border=0></a></td>\n');
    }
    }
    j+=3;
    document.write('</tr>\n');
    }
    }
    //-->
    </SCRIPT>
      </TBODY></TABLE></DIV>
    <DIV id=display><IMG border=0 height=50 src="相当不错的调色板.files/blank.gif" 
    width=50></DIV>
    <DIV id=titleBar>
    <TABLE border=0 cellPadding=2 cellSpacing=0 width=320>
      <TBODY>
      <TR>
        <TD id=title>Houser's RGB2HEX DHTML App</TD></TR></TBODY></TABLE></DIV>
    <DIV id=hexValue>
    <FORM name=frmValue>
    <TABLE bgColor=#eeeeee border=0 cellPadding=2 cellSpacing=0 width=320>
      <TBODY>
      <TR>
        <TD align=middle>
          <TABLE border=0 cellPadding=2 cellSpacing=0>
            <TBODY>
            <TR>
              <TD id=subtext>Red</TD>
              <TD id=subtext>Green</TD>
              <TD id=subtext>Blue</TD></TR>
            <TR>
              <TD><INPUT maxLength=3 name=RgbDisp 
                onblur="manualSet(this.value,'red');" size=3 value=0></TD>
              <TD><INPUT maxLength=3 name=rGbDisp 
                onblur="manualSet(this.value,'green');" size=3 value=0></TD>
              <TD><INPUT maxLength=3 name=rgBDisp 
                onblur="manualSet(this.value,'blue');" size=3 
          value=0></TD></TR></TBODY></TABLE></TD>
        <TD align=middle>
          <TABLE border=0 cellPadding=2 cellSpacing=0>
            <TBODY>
            <TR>
              <TD id=subtext>Hexdecimal</TD></TR>
            <TR>
              <TD><INPUT maxLength=6 name=valueDisp onblur=convertHex(); size=6 
                value=000000></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></FORM></DIV></BODY></HTML>