比如
一个颜色 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
一个颜色 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
解决方案 »
- 请问这两种取id的有什么区别?
- 貌似 ff 的一个 bug, 多个 setInterval
- 急!!跳转问题,如果是错误信息就不提交到对应的页面!
- JS头大问题,大家出下手
- 请大家帮我看看这个问题该如何解决
- GB2312到iso-8859-1的转换
- Array能接受多大的数组?Var能接受多大的数组?
- 用javascript操作excel中单元格的locked属性的疑问!!!!!
- jquery解决table出现的问题
- Js怎么实现在left框架内点连接,然后把框加right选中的内容复制到剪贴板?
- 怎么回事???编了一个程序老是报错,想将一个变量的内容传递给新的网页???帮忙!!!
- 急!!一个小问题,层出了问题,层里面的字不显示,为什么???
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
<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;
}
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>
<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>
<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
}
}
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>