JS实现的RGB网页颜色在线取色器完整实例


Posted in Javascript onDecember 21, 2016

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

运行效果图如下:

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>
Javascript 相关文章推荐
jquery购物车实时结算特效实现思路
Sep 23 Javascript
javascript打印输出json实例
Nov 11 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
微信小程序使用echarts获取数据并生成折线图
Oct 16 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 Javascript
js querySelector() 使用方法
Dec 21 #Javascript
简单实现Vue的observer和watcher
Dec 21 #Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 #Javascript
js实现开启密码大写提示
Dec 21 #Javascript
js实现的在线调色板功能完整实例
Dec 21 #Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 #Javascript
清除输入框内的空格
Dec 21 #Javascript
You might like
一个程序下载的管理程序(二)
2006/10/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
phpinfo的知识点总结
2019/10/10 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
超清晰的document对象详解
2007/02/27 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python深入06——python的内存管理详解
2016/12/07 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Jupyter加载文件的实现方法
2020/04/14 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
保安队长职务说明书
2014/02/23 职场文书
党委班子剖析材料
2014/08/21 职场文书
保密工作承诺书
2014/08/29 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Python入门之基础语法详解
2021/05/11 Python
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL