colorPanel.js:
/*colorPanel.js
//客户端页面颜色设置面板PagecolorPanel(仿EditPlus2.11的颜色设置面板)
//实现:HTML & JAVASCRIPT
//文件内容:一个html,一个JS(就是本文件,目前啥都算上正好100行),一个CSS;
//编写时间: 2003-6-14
//编写:CSDN yzyun (袁子云)
//废话:由于工作的需要,最近开始做脚本编程,是个不折不扣的新手,大虾们别笑话。
// 应该可以做的更漂亮,比如鼠标移动到颜色格子时的浮动效果、DIV的立体感、逼真程度、实用性的模拟等等;
// 还有,这是在IE6下搞的,也没有调试版本兼容的问题,更莫说浏览器兼容了;
// 还还有,整篇代码并不是很干净,时间有限,就算了;最重要的是,它的实用程度估计不是很好:( ,就当练手了。
//声明:您如果有用,尽可以拿去改用,这本来就是一个有点烂的东西,而且页面脚本似乎向来没有版权之说的:) ,
// 呵呵,当然,我其实也挺希望您采用自己的方式(比如适当留些注释之类),略显对本人劳动的尊重:Q
// 如果方便,CSDN上 @¥%#^%#~&×
*/var oColor; //十六进制颜色表示(em:FFFFFF)
var mColor; //十进制数字(em:16776960)
var uColor;     //用户最后获取的颜色制(em:#FFCC00)//在页面生成一个隐藏的DIV,用于容纳颜色面板table
document.write("<DIV id='colorPanel' style='position: absolute;BORDER-BOTTOM: #000000 1px double; BORDER-LEFT: #9999CC 1px double; BORDER-RIGHT: #000000 1px double; BORDER-TOP: #9999CC 1px double;_left:10px; _top: 10px; width: 194px; height: 292px;visibility:hidden;z-index: 11'>");
//将table嵌入DIV
document.write("<Table border='1' cellspacing='0' cellpadding='0' bordercolorlight=#FFFFFF bordercolordark=#000000 >");
//调用函数GetTable,传递不同的参数,生成颜色面板table的上中下三部分;
GetTable(16776960,0,6,-3342336,-13056);
GetTable(6684672,6,12,3342336,13056);
GetTable(3407616,12,18,-3342336,-13056);//呵呵,这块属于核心代码,写起来本不难,关键是难在根据EditPlus的颜色设置面板,寻找其间的规律
//各个参数的含义:
// beginC,每行的起始颜色值(十进制表示);
// m、n:循环的起止范围(其实都是0、6就可,为清晰起见,做参数传递);
// Z:首先说,这个参数的命名不规范(其实本代码各种命名都不规范:)),是每行写到中间位置时,颜色的偏移值(十进制表示);
// Y:毛病同上,用来做前行末于下行首的颜色的偏移值(十进制表示);
function GetTable(beginC,m,n,Z,Y)
{
for (i=m;i<n ;i++ )
{
mColor=beginC;
document.write("<TR>");
for (j=0;j<6 ; j++)
{
oColor=mColor.toString(16);
AddTD(oColor);
mColor+=51;
}
mColor=mColor+Z-51;
for (j=6;j<12 ; j++)
{
oColor=mColor.toString(16);
AddTD(oColor);
mColor-=51;
}
document.write("</TR>");
beginC=beginC+Y;
}
}
//这不用说了,DIV和table收尾。
document.write("</Table>");
document.write("</DIV>");//函数GetTable中调用的函数,就是画TD和其中的DIV;
function  AddTD(Color)
{
while (Color.length<6)
{
Color="0"+Color;
}
Color=Color.toUpperCase();
document.write("<TD  title='#" + Color +"' bgcolor='#" + Color +"' onclick='getcolor()' ondblclick='setcolor()' onmouseover=window.status='#" + Color + "'>");
document.write("<DIV  cellspacing='0' cellpadding='0' title='#" + Color +"'style='BACKGROUND-COLOR: #" + Color + " visibility:_hidden' >");
document.write("&nbsp;");
document.write("</DIV>");
document.write("</TD>");
}//目前设置为单击颜色面板时调用
function getcolor()
{
var e=event.srcElement;
uColor=e.title;
colorTxt.value=uColor;
}
//设置为双击颜色面板时调用,同时隐藏DIV
function setcolor()
{
getcolor()
colorPanel.style.visibility="hidden";
}//页面input-text双击时间调用的函数
function dblC()
{
var mX,mY;
mX=event.srcElement.offsetLeft;
mY=event.srcElement.offsetTop;
colorPanel.style.visibility="";
colorPanel.style.left = mX+20;
colorPanel.style.top = mY+20;
}