本文实例讲述了JS实现的RGB网页颜色在线取色器。分享给大家供大家参考,具体如下:

运行效果图如下:
完整实例代码如下:
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<meta name="description" content="在线取色器">
<meta name="keywords" content="在线取色器">
<title>RGB网页颜色在线取色器</title>
<style type="text/css">
<!--
a.g:link {
text-decoration: none;
color: #0000FF;
font-size: 13px;
}
a.g:visited {
text-decoration: none;
color: #0000FF;
font-size: 13px;
}
a.g:hover {
text-decoration: none;
color: #FF0000;
font-size: 13px;
}
.gray{color:#666666}
.f12{font-size:12px}
.box{padding:2px;border:1px solid #CCC}
-->
</style>
<script language="javascript">
<!--
function h(obj,url){
obj.style.behavior='url(#default#homepage)';
obj.setHomePage(url);
}
function $(id){
obj=document.getElementById(id);
if (obj==null) obj=document.all.id;
return obj;
}
//检查颜色值-Begin
function isNum16(ch)
{
if (ch >= '0' && ch <= '9')return true;
if (ch >= 'A' && ch <= 'F')return true;
if (ch >= 'a' && ch <= 'f')return true;
return false;
}
function isAllNum16(str1)
{//判断颜色值。除第一个字符#外的任一个值是否大于等a,A,0,小于等于f,F,9,否则报错。
for (i=1; i<str1.length; i++) {
if (!isNum16(str1.charAt(i)))
{
return false;
}
}
return true;
}
function checkCol(myColor)
{ //made by jiarry,input color value to change background
if(myColor!="")
{
if(myColor.length !=7 || myColor.charAt(0)!="#")
{
alert("颜色值加#至少7位,请检查!");
$("SelColor").value="";
}
else if(!isAllNum16(myColor))
{
alert("颜色代码错误,请检查\n 颜色代码示例:#ff6600");
$("SelColor").value="";
}
else{
return myColor;
}
}
}
//检查颜色值-END
var SelRGB = '#808080';
var DrRGB = "";
var SelGRAY = '120';
var SelCol="";
var baseCol="#808080";
var light="120";
var RGB=$("RGB");
var hexch = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
//add innerText to FireFox Begin
if(!document.all){
HTMLElement.prototype.__defineGetter__
(
"innerText",
function ()
{
var anyString = "";
var childS = this.childNodes;
for(var i=0; i<childS.length; i++)
{
if(childS[i].nodeType==1)
anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
else if(childS[i].nodeType==3)
anyString += childS[i].nodeValue;
}
return anyString;
}
);
}
////add innerText to FireFox End
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;
var GrayTable=$("GrayTable");
if(DrRGB != SelRGB)
{
DrRGB = SelRGB;
for(i = 0; i <= 30; i ++)
GrayTable.rows[i].bgColor = DoColor(SelRGB, 240 - i * 8);
}
var SelColor=$("SelColor");
var RGB=baseCol;
var GRAY=light;
var ShowColor=$("ShowColor");
SelColor.value = DoColor(baseCol, light);
ShowColor.bgColor = SelColor.value;
document.getElementById('copytip').innerHTML='';
}
function ctOut(e) {
baseCol=SelRGB;
EndColor(baseCol);
}
function ctClick(e) {
SelRGB = e.bgColor;
EndColor();}
function ctOver(e){
baseCol = e.bgColor.toUpperCase();
EndColor();
}
function gtOver(e){
light = e.title;
EndColor();
}
function gtOut() {
light = SelGRAY;
EndColor();
}
function gtClick(e){
SelGRAY = e.title;
EndColor();
}
function okClick(){
var SelColor=$("SelColor");
self.parent.setColor(SelColor.value);
}
function inpCol(o){
var l=o.value;
if (l.length==7){
$('ShowColor').bgColor=checkCol(o.value);}
else if(l.length>7){
o.value=l.substring(0,7);
alert("颜色代码加#不能超过7位");
}
}
-->
</script>
</head>
<body bgcolor=#ffffff text=#000000 vlink=#0033CC alink=#800080 link=#0033cc topmargin="0">
<p> </p>
<table align="center" width="700"><tr><td>
</td></tr>
<tr><td>
</td></tr>
</table>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td bgcolor="#40A6DD" width="720"><b style="color:#FFFF00; font-size:16px;"> 颜色选择器</b></td>
</tr>
<td class="padd10">
<br>
<table width="720" border="0" cellpadding="0" cellspacing="0" class="colTab">
<tr align="left" valign="top">
<td width=515>
<table border="0" cellspacing="0" cellpadding="0"><tr><td>
<span class="gray f12">颜色:</span>
<div class="box" style="padding:0;width:422px !important;width:424px">
<TABLE ID=ColorTable BORDER=0 CELLSPACING=2 CELLPADDING=0 style='cursor:pointer'>
<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=12 onmouseover="ctOver(this)" onmouseout="ctOut(this)" onmousedown="ctClick(this)"></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>
</TABLE>
</div>
</td><td valign="top" style="padding-left:30px ">
<span class="gray f12">亮度:</span>
<div class="box" style="width:20px !important;width:26px;">
<TABLE ID=GrayTable BORDER=0 CELLSPACING=0 CELLPADDING=0 style='cursor:pointer'>
<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=5 width=20 onmouseover="gtOver(this)" onmouseout="gtOut()" onmousedown="gtClick(this)"></TD></TR>');
}
</SCRIPT>
</TABLE>
</div>
</td></tr>
</table>
</td>
<td width=87 valign="top">
<span class="gray f12">选中颜色:</span>
<div class="box" style="width:50px !important;width:54px ">
<table ID=ShowColor width="50" height="24" cellspacing="0" cellpadding="0">
<tr><td></td></tr>
</table>
</div>
</td>
<td width="128" valign="top">
<span class="gray f12">代码:</span><br>
<INPUT TYPE=TEXT class="colInp" ID=SelColor value="#FFFFFF" SIZE=7 onKeyUp="inpCol(this)">
<input type=button style="visibility:hidden!important;visibility:visible" onClick="document.getElementById('SelColor').select();clipboardData.setData('text',document.getElementById('SelColor').value); document.getElementById('copytip').innerHTML='代码已复制到剪贴板';" value=" 复制 "><div id="copytip" class="gray f12" style="margin-top:5px"></div></div><div style="visibility:hidden">基色 : <SPAN ID=RGB>#000000</SPAN><BR>亮度 : <SPAN ID=GRAY>120</SPAN><BR></div></td>
</tr>
</table>
<script>
EndColor();
</script>
</td>
</tr>
</table>
<center>
</center>
</body>
</html>
PS:这里再为大家推荐几款本站的相关在线工具:
在线RGB、HEX颜色代码生成器:
http://tools./color/rgb_color_generator
RGB颜色查询对照表_颜色代码表_颜色的英文名称大全:
http://tools./color/jPicker
在线网页调色板工具:
http://tools./color/color_picker
在线颜色选择器工具/RGB颜色查询对照表:
http://tools./color/colorpicker
更多关于JavaScript相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JS
# RGB
# 网页颜色
# 在线
# 取色器
# 使用react-color实现前端取色器的方法
# Flutter实现矩形取色器的封装
# Flutter自定义圆盘取色器
# iOS实现从背景图中取色的代码
# js从10种颜色中随机取色实现每次取出不同的颜色
# 安卓实现自定义圆形取色盘
# 对照表
# 请检查
# 选择器
# 相关内容
# 第一个
# 遍历
# 数据结构
# 给大家
# 报错
# 更多关于
# 所述
# 不能超过
# 几款
# 程序设计
# 再为
# 代码生成器
# 讲述了
# input
# change
# background
相关文章:
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
建站之星会员如何解锁更多建站功能?
Swift中swift中的switch 语句
,网站推广常用方法?
如何选择可靠的免备案建站服务器?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
微信小程序 五星评分(包括半颗星评分)实例代码
建站主机CVM配置优化、SEO策略与性能提升指南
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
C#如何在一个XML文件中查找并替换文本内容
如何用PHP工具快速搭建高效网站?
如何通过cPanel快速搭建网站?
如何通过wdcp面板快速创建网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
太原网站制作公司有哪些,网约车营运证查询官网?
制作销售网站教学视频,销售网站有哪些?
网站制作报价单模板图片,小松挖机官方网站报价?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
广平建站公司哪家专业可靠?如何选择?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何用西部建站助手快速创建专业网站?
潮流网站制作头像软件下载,适合母子的网名有哪些?
建站与域名管理如何高效结合?
如何选择高效可靠的多用户建站源码资源?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何高效生成建站之星成品网站源码?
seo网站制作优化,网站SEO优化步骤有哪些?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
招贴海报怎么做,什么是海报招贴?
如何通过建站之星自助学习解决操作问题?
如何在万网自助建站平台快速创建网站?
如何将凡科建站内容保存为本地文件?
相册网站制作软件,图片上的网址怎么复制?
如何用VPS主机快速搭建个人网站?
建站之星安装模板失败:服务器环境不兼容?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
建站之星下载版如何获取与安装?
如何通过山东自助建站平台快速注册域名?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
音响网站制作视频教程,隆霸音响官方网站?
如何确保西部建站助手FTP传输的安全性?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何通过FTP服务器快速搭建网站?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
孙琪峥织梦建站教程如何优化数据库安全?
怎么将XML数据可视化 D3.js加载XML
*请认真填写需求信息,我们会在24小时内与您取得联系。