您的位置:首页 > Web前端 > JavaScript

JavaScript中的颜色选择器

2010-11-30 14:07 120 查看
一直觉得javascript很强大,javascript的框架之多几乎能和java相媲美了:dwr、ext、jquery等。下面我记录的只是一个颜色选择器的使用心得。废话少说,直接看代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>颜色选择器</title>
</head>

<BODY>s 
<script language="javascript">
document.write("<OBJECT id=/"dlgHelper/" CLASSID=/"clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b/" width=/"0px/" height=/"0px/"></OBJECT>");
var ocolorPopup = window.createPopup();
var ecolorPopup=null;

function colordialogmouseout(obj){
obj.style.borderColor="";
obj.bgColor="";
}

function colordialogmouseover(obj){
obj.style.borderColor="#0A66EE";
obj.bgColor="#EEEEEE";
}

function colordialogmousedown(color){
ecolorPopup.value=color;
//document.body.bgColor=color;
ocolorPopup.document.body.blur();
selectColor();
}

function colordialogmore(){
var sColor=dlgHelper.ChooseColorDlg(ecolorPopup.value);
sColor = sColor.toString(16);
if (sColor.length < 6) {
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
ecolorPopup.value="#"+sColor.toUpperCase();
//document.body.bgColor="#"+sColor.toUpperCase();
ocolorPopup.document.body.blur();
}

function colordialog(){
var e=event.srcElement;
//e.value = document.getElementById("aoe").value;
e.onkeyup=colordialog;
ecolorPopup=e;
var ocbody;
var oPopBody = ocolorPopup.document.body;
var colorlist=new Array(40);
oPopBody.style.backgroundColor = "#f9f8f7";
oPopBody.style.border = "solid #999999 1px";
oPopBody.style.fontSize = "12px";

colorlist[0]="#000000"; colorlist[1]="#993300"; colorlist[2]="#333300"; colorlist[3]="#003300";
colorlist[4]="#003366"; colorlist[5]="#000080"; colorlist[6]="#333399"; colorlist[7]="#333333";
colorlist[8]="#800000"; colorlist[9]="#FF6600"; colorlist[10]="#808000";colorlist[11]="#008000";
colorlist[12]="#008080";colorlist[13]="#0000FF";colorlist[14]="#666699";colorlist[15]="#808080";
colorlist[16]="#FF0000";colorlist[17]="#FF9900";colorlist[18]="#99CC00";colorlist[19]="#339966";
colorlist[20]="#33CCCC";colorlist[21]="#3366FF";colorlist[22]="#800080";colorlist[23]="#999999";
colorlist[24]="#FF00FF";colorlist[25]="#FFCC00";colorlist[26]="#FFFF00";colorlist[27]="#00FF00";
colorlist[28]="#00FFFF";colorlist[29]="#00CCFF";colorlist[30]="#993366";colorlist[31]="#CCCCCC";
colorlist[32]="#FF99CC";colorlist[33]="#FFCC99";colorlist[34]="#FFFF99";colorlist[35]="#CCFFCC";
colorlist[36]="#CCFFFF";colorlist[37]="#99CCFF";colorlist[38]="#CC99FF";colorlist[39]="#FFFFFF";
ocbody = "";
//alert(e.value+"|made");
ocbody += "<table CELLPADDING=0 CELLSPACING=3>";
ocbody += "<tr height=/"20/" width=/"20/"><td align=/"center/"><table style=/"border:1px solid #808080;/" width=/"12/" height=/"12/" bgcolor=/""+e.value+"/"><tr><td></td></tr></table></td><td bgcolor=/"eeeeee/" colspan=/"7/" style=/"font-size:12px;/" align=/"center/">当前颜色</td></tr>";
for(var i=0;i<colorlist.length;i++){
if(i%8==0)
ocbody += "<tr>";
ocbody += "<td width=/"14/" height=/"16/" style=/"border:1px solid;/" onMouseOut=/"parent.colordialogmouseout(this);/" onMouseOver=/"parent.colordialogmouseover(this);/" onMouseDown=/"parent.colordialogmousedown('"+colorlist[i]+"')/" align=/"center/" valign=/"middle/"><table style=/"border:1px solid #808080;/" width=/"12/" height=/"12/" bgcolor=/""+colorlist[i]+"/"><tr><td></td></tr></table></td>";
if(i%8==7)
ocbody += "</tr>";
}
ocbody += "<tr><td align=/"center/" height=/"22/" colspan=/"8/" onMouseOut=/"parent.colordialogmouseout(this);/" onMouseOver=/"parent.colordialogmouseover(this);/" style=/"border:1px solid;font-size:12px;cursor:default;/" onMouseDown=/"parent.colordialogmore()/">其它颜色...</td></tr>";
ocbody += "</table>";

oPopBody.innerHTML=ocbody;
ocolorPopup.show(e.offsetLeft, e.offsetTop+e.offsetHeight+30, 158, 147, document.body);
}

//-->
</script>
选择颜色:
<input name="sel1" id="sel1" type="text" onfocus="colordialog()" />
</BODY>
</HTML>

代码也没什么好解释的,看一下就明白了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: