📄 5color.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="window-target" content="_top">
<title>Shake-JS取色控件</title>
<style type="text/css">
body{margin:1px;cursor:default}
.TitleSelect {
cursor:default;
font-size: 12px;
color: #000000;
text-decoration: none;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #666666;
border-right-color: #666666;
border-bottom-color: #EFEBDE;
border-left-color: #666666;
}
.TitleNoSelect {
cursor:default;
font-size: 12px;
color: #999999;
text-decoration: none;
border: 1px solid #666666;
}
.ColorFoot {
cursor:default;
font-size: 12px;
text-decoration: none;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: #666666;
border-bottom-color: #666666;
border-left-color: #666666;
border-top-color: #EFEBDE;
}
.ColorBody {
font-size: 12px;
text-decoration: none;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #EFEBDE;
border-right-color: #666666;
border-bottom-color: #EFEBDE;
border-left-color: #666666;
}
.CustomerText {
font-size: 12px;
color: #000000;
text-decoration: none;
}
.TCBox {
font-size: 12px;
text-decoration: none;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #666666;
border-right-color: #EFEBDE;
border-bottom-color: #EFEBDE;
border-left-color: #666666;
}
.Img1px {
font-size: 1px;
text-decoration: none;
}
.Buttons {
width:90%;
height:30px;
font-size: 12px;
text-decoration: none;
background-color: #EFEBDE;
border: 1px solid #666666;
}
.TCBoxSelect {
font-size: 12px;
text-decoration: none;
border: 1px groove #333333;
}
</style>
</head>
<Script language="javascript" type="text/javascript">
var cMode = 1; //当前模式
function TitleOnChange(n){
document.getElementById('ColorTitle_'+cMode).className = 'TitleNoSelect';
document.getElementById('Title'+cMode).style.display = 'none';
var CurSelect = event.srcElement;
cMode = n
CurSelect.className = 'TitleSelect';
document.getElementById('Title'+cMode).style.display = 'block';
if(cMode != 6){
eval('WinReturnValue.value = Color'+cMode+'HTML.value;');
addButton.disabled = false;
}else{
WinReturnValue.value = "";
addButton.disabled = true;
}
delete CurSelect;
switch(n)
{
case 1:
dc1.innerHTML=drawColorMain()
break
case 2:
dc2.innerHTML=drawColorLine()
break
case 3:
dc3.innerHTML=drawColorSelBox()
break
case 4:
dc4.innerHTML="<div align=center style=color:red>请稍等...</div>"
setTimeout("dc4.innerHTML=drawCircleColor()",10)
break
case 5:
dc5.innerHTML="<div align=center style=color:red>请稍等...</div>"
setTimeout("dc5.innerHTML=writeColorTable()",10)
break
}
}
function RGBtoHTML(R,G,B){
R = parseInt(R);
G = parseInt(G);
B = parseInt(B);
var r=(R>=16)?R.toString(16):('0'+R.toString(16));
var g=(G>=16)?G.toString(16):('0'+G.toString(16));
var b=(B>=16)?B.toString(16):('0'+B.toString(16));
delete R,G,B;
return('#'+r.toUpperCase()+g.toUpperCase()+b.toUpperCase());
}
function HSVtoRGB(H,S,V,T){
if(T){
H = parseInt(H);
S = parseInt(S) / 100;
V = parseInt(V) / 100;
}
var r,g,b;
var k = (H%60)/60;
var c1 = V*(1-S);
var c2 = V*(1-S*k);
var c3 = V*(1-S*(1-k));
switch(parseInt(H/60)){
case 0 : r=V,g=c3;b=c1; break;
case 1 : r=c2,g=V;b=c1; break;
case 2 : r=c1,g=V;b=c3; break;
case 3 : r=c1,g=c2;b=V; break;
case 4 : r=c3,g=c1;b=V; break;
case 5 : r=V,g=c1;b=c2; break;
}
R = parseInt(r*255);
G = parseInt(g*255);
B = parseInt(b*255);
var rl = new Array(R,G,B);
delete H,S,V,r,g,b,k,c1,c2,c3,R,G,B,T;
return(rl);
}
function NumToDec(aValue, fromBase)
{
var aNum = 0;
var curNum = 0;
var i = 0;
var s = aValue;
var c = aValue.substr(0,1);
var SignChanged = false;
if (c == "-")
{
s = aValue.substr(1, aValue.length -1);
SignChanged = true;
}
for (i = 0; i < s.length; i++)
{
c = s.substr(i,1);
switch (c.toLowerCase())
{
case "a" :
curNum = 10;
break;
case "b" :
curNum = 11;
break;
case "c" :
curNum = 12;
break;
case "d" :
curNum = 13;
break;
case "e" :
curNum = 14;
break;
case "f" :
curNum = 15;
break;
default :
curNum = eval(s.substr(i,1));
}
aNum = aNum * fromBase + curNum;
}
if (SignChanged == true) aNum = aNum * -1;
delete fromBase,curNum,i,s,c,SignChanged;
return aNum;
}
function CustomerColorSelect(){
CustomerColor.rows[parseInt(CustomerColorSelRow.value)-1].cells[parseInt(CustomerColorSelCell.value)-1].className = 'TCBox';
var e = event.srcElement;
var R = e.parentNode.rowIndex + 1;
var C = e.cellIndex + 1;
e.className = 'TCBoxSelect';
CustomerColorSelRow.value = R;
CustomerColorSelCell.value = C;
WinReturnValue.value = e.bgColor;
delete e,R,C;
}
function addCustomerColor(){
var CBox = CustomerColor.rows[parseInt(CustomerColorSelRow.value)-1].cells[parseInt(CustomerColorSelCell.value)-1];
eval('CBox.bgColor = Color'+cMode+'HTML.value;');
delete CBox;
}
//====[七彩板]
function drawColorMain(){
var CX = 15;
var CY = 38;
var ColorMainLayer = '';
var t=new Array()
var SevenColor = new Array('255,0,0','255,255,0','0,255,0','0,255,255','0,0,255','255,0,255','255,0,0');
for(var i = 0 ; i < 6 ; i++){
ColorMainLayer = '<span class="Img1px" style="position:absolute; left:'+ (50 * i + CX) +'px; top:'+ CY +'px; width:50px;height:240px; background:rgb('+SevenColor[i]+')"></span><span class="Img1px" style="position:absolute; left:'+ (50 * i + CX) +'px; top:'+ CY +'px; width:50px; height:240px; background:rgb('+SevenColor[i+1]+'); filter:alpha(opacity=0,finishopacity=100,style=1);"></span>';
t[t.length]=ColorMainLayer
}
ColorMainLayer = '<span class="Img1px" style="position:absolute; left:'+ CX +'px; top:'+ CY +'px; width:300px; height:240px; background:rgb(153,153,153); filter:alpha(startX=0,finishX=0,startY=0,finishY=100,opacity=0,finishopacity=100,style=1);" onClick="Color1Picker()" onMouseMove="Color1Mover();if(event.button == 1){Color1Picker();}"></span>';
t[t.length]=(ColorMainLayer);
delete SevenColor,i,CX,CY,ColorMainLayer;
return t.join("")
}
function Color1Mover(){
var eX = event.offsetX;
var eY = event.offsetY;
//色调最大值为360,选色框宽为300
eX = parseInt(eX * 360 / 300) + 1;
//饱和度最大值为100,选色框高为240
eY = 100 * eY / 240;
var CL3 = HSVtoRGB(eX,1-eY/100,1-eY/200,false);
xColor1.style.background = 'rgb('+CL3[0]+','+CL3[1]+','+CL3[2]+')';
delete eX,eY,CL3;
}
function Color1Picker(){
Color1_Expler.style.top = '150px';
var eX = event.offsetX;
var eY = event.offsetY;
//色调最大值为360,选色框宽为300
eX = parseInt(eX * 360 / 300) + 1;
//饱和度最大值为100,选色框高为240
eY = 100 * eY / 240;
//H 0-360 S 0.5-0 V 2-0
var CL3 = HSVtoRGB(eX,1-eY/100,1-eY/200,false);
V1_Line.style.background = 'rgb('+CL3[0]+','+CL3[1]+','+CL3[2]+')';
H1.value = eX;
S1.value = parseInt(240 - eY * 240 / 100);
V1.value = Color1V.value;
R1.value = CL3[0];
G1.value = CL3[1];
B1.value = CL3[2];
xColor2.style.background = 'rgb('+CL3[0]+','+CL3[1]+','+CL3[2]+')';
Color1HTML.value = RGBtoHTML(CL3[0],CL3[1],CL3[2]);
WinReturnValue.value = Color1HTML.value;
delete eX,eY,CL3;
}
function Color1_LinePicker(Ev){
var eY = event.y;
V1.value = 240 - (eY - 41);
Color1V.value = 240 - (eY - 41);
Color1_Expler.style.top = eY - 8 + 'px';
var H = parseInt(H1.value)-5;
var S = (1 - (240 - parseInt(S1.value)) / 240) / 2;
if(S1.value<=120){
var V = (240 - parseInt(event.offsetY)) / 240;
}else{
var V = (2 - parseInt(event.offsetY + 10) / 120);
}
var CL3 = HSVtoRGB(H,S,V,false);
if(CL3[0]>255)
CL3[0]=255;
else if(CL3[0]<0)
CL3[0]=0;
if(CL3[1]>255)
CL3[1]=255;
else if(CL3[1]<0)
CL3[1]=0;
if(CL3[2]>255)
CL3[2]=255;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -