在網(wǎng)站中經(jīng)常需要用戶自定義顏色來(lái)顯示某些信息。這可以在網(wǎng)頁(yè)添加一個(gè)拾色器來(lái)實(shí)現(xiàn)。
在本實(shí)例中僅使用 216 種瀏覽器安全的顏色,即所謂的 Netscape 色塊。這 216 種顏色分別代表 0、51、102、153、204 這 5 個(gè)顏色值以及每一種原色(即紅、綠、藍(lán))。這些十進(jìn)制數(shù)值對(duì)應(yīng)的十六進(jìn)制數(shù)分別為 0x00、0x33、0x66、0x99、0xCC 和 0xFF。在 HTML 的顏色屬性中黑色是 #000000,純紅色是 #FF0000,純綠色就是 #00FF00,純藍(lán)色是 #0000FF,而白色是 #FFFFFF。在實(shí)現(xiàn)網(wǎng)頁(yè)拾色器時(shí)需要應(yīng)用 JavaScript 數(shù)組。創(chuàng)建數(shù)組可以有以下三種方法。
1.無(wú)參數(shù)調(diào)用。
<span style="white-space:pre"> </span>var h = new Array()
2.指定數(shù)組前n個(gè)元素的值
var h = new Array(arglist)
3.指定具有的元素個(gè)數(shù)
var h = new Array(n)
1.實(shí)現(xiàn)點(diǎn)擊顏色框,彈出網(wǎng)頁(yè)拾色器網(wǎng)頁(yè) index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/jscript" language="javascript">
function pp(field)
{
var rtn = window.showModalDialog("color.html","","dialogWidth=220px;dialogHeight=200px;status=no;help=no;scrollbars=no")
if(rtn!=null)
{
field.style.background= rtn
}
return;
}
</script>
</head>
<body>
<input type="text" readonly="yes" id="color" name="color" size=3 style="background:#000000" value = "" onclick = "pp(this)">
</body>
</html>
2.網(wǎng)頁(yè)拾色器 color.html
<script language="javascript">
var h = new Array(6);
h[0] = "FF";
h[1] = "CC";
h[2] = "99";
h[3] = "66";
h[4] = "33";
h[5] = "00";
function action(RGB)
{
parent.window.returnValue = "#"+RGB;
window.close();
}
function Mcell(R,G,B)
{
document.write('<td bgcolor="#'+R+G+B+'">');
document.write('<a href="#" onclick="action(\''+(R+G+B)+'\')">');
document.write('<img border=0 height=12 width=12\')"alt=\'#'+R+G+B+'\'>');
document.write('</a>');
document.write('</td>');
}
function Mtr(R,B)
{
document.write('<tr>');
for (var i = 0; i <6; ++i)
{
Mcell( R , h[i] , B );
}
document.write('</tr>');
}
function Mtable(B)
{
document.write('<table cellpadding=0 cellspacing=0 border=0>');
for(var i = 0;i<6;++i)
{
Mtr(h[i],B);
}
document.write('</table>')
}
function Mcube()
{
document.write('<table cellpadding=0 cellspacing=0 border=0>');
for(var i = 0;i<6;++i)
{
if(i%3 == 0)
{
document.write('<tr>')
}
document.write('<td bgcolor=#000000">');
Mtable(h[i]);
document.write('</td>')
if(i%3==2)
{
document.write('</tr>')
}
}
document.write('</table>');
}
Mcube();
</script>