javascript实现根据3原色制作颜色选择器的方法


Posted in Javascript onJuly 17, 2015

本文实例讲述了javascript实现根据3原色制作颜色选择器的方法。分享给大家供大家参考。具体如下:

document.write('<div id="msecolor"><div class="aa"><div class="ab"><div class="ab1"><select onchange="T.f(this.value)"><option value="1">红</option><option value="3">绿</option><option value="5">蓝</option><option value="7">灰</option></select></div><div id="msecolor_ab2"><input type="text" maxlength="7"><span></span></div></div><div class="ac"><div id="msecolor_ac1"></div><div id="msecolor_ac2"></div></div></div></div>');
T={s:true};
T.a=A.$('msecolor_ab2').children[0];
T.b=A.$('msecolor_ab2').children[1];
T.c=A.$('msecolor_ac1');
T.d=A.$('msecolor_ac2');
T.ini=function(id,fun){
 this.fun=fun;
 if(typeof(id)!='object')
 id=A.$(id);
 this.obj=id;
 var w=A.wz(id);
 var ph=document.documentElement.clientHeight,pw=document.documentElement.clientWidth;
 var sh=document.documentElement.scrollTop,sw=document.documentElement.scrollLeft;
 if(w.x-sw+322 > pw){
  var l=w.x+id.offsetWidth - 322;
 }else{
  var l=w.x;
 }
 if(w.y-sh+329+id.offsetHeight > ph){
  var t=w.y - 329;
 }else{
  var t=w.y+id.offsetHeight;
 }
 with(A.$('msecolor').style){
  display='block';
  top=t+'px';
  left=l+'px';
 }
}
T.hide=function(){A.$('msecolor').style.display='none';}
T.e=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
T.f=function(a){
 T.h=a;
 T.c.innerHTML='';
 if(a==7){
  for(var i=0;i<16;i++){
  var s=A.$$('span');
  s.title=s.style.backgroundColor='#'+T.e[i]+T.e[i]+T.e[i]+T.e[i]+T.e[i]+T.e[i];
  T.c.appendChild(s);
  }
  T.g(a,0);
 }else{
 for(var i=0;i<16;i++){
 var s=A.$$('span');
 s.title=s.style.backgroundColor=T.z(a,T.e[i]);
 T.c.appendChild(s);
 s.onclick=function(){
  var s=this.title.substr(1,1);
  if(s=='0')
  s=this.title.substr(3,1);
  if(s=='0')
  s=this.title.substr(5,1);
  T.g(T.h,s);
  }
 }
 T.g(a,0);
 }
}
T.g=function(a,b){
 T.d.innerHTML='';
 switch(parseInt(a)){
  case 1:
  var c=3,e=5,g='T.z(a,b,c,T.e[parseInt(i/16)],e,T.e[i%16])';
  break;
  case 3:
  var c=1,e=5,g='T.z(c,T.e[parseInt(i/16)],a,b,e,T.e[i%16])';
  break;
  case 5:
  var c=1,e=3,g='T.z(c,T.e[parseInt(i/16)],e,T.e[i%16],a,b)';
  break;
  case 7:
  for(var i=0;i<256;i++){
   var s=document.createElement('span');
   s.title=s.style.backgroundColor='#'+T.e[parseInt(i/16)]+T.e[i%16]+T.e[parseInt(i/16)]+T.e[i%16]+T.e[parseInt(i/16)]+T.e[i%16];
   s.onmouseover=function(){
    T.a.value=this.title;
    T.b.style.backgroundColor=this.style.backgroundColor;
    T.b.title=this.title;
   }
   s.onclick=function(){
    T.hide();
    T.fun(this.title,T.obj);
   }
   T.d.appendChild(s);
  }
  return false;
  break;
 }
 for(var i=0;i<256;i++){
 var s=document.createElement('span');
 s.title=s.style.backgroundColor=eval(g);
 s.onmouseover=function(){
  T.b.style.backgroundColor=this.style.backgroundColor;
  T.a.value=this.title;
  T.b.title=this.title;
 }
 s.onclick=function(){
  T.hide();
  T.fun(this.title,T.obj);
 }
 T.d.appendChild(s);
 }
}
T.b.onclick=function(){
 T.hide();
 T.fun(this.title,T.obj);
}
T.a.onkeyup=function(e){
 var e=e || event;
 if(e.keyCode==13){
  T.b.style.backgroundColor=this.value;
  T.b.title=this.value;
  T.hide();
  T.fun(this.value,T.obj);
 }
}
T.z=function(a,b,c,d,e,f){s='#';a=parseInt(a);c=parseInt(c);e=parseInt(e);for(var i=0;i<6;i++){if(i>=(a-1) && i<(a+1)){s+=b;}else if(i>=(c-1) && i<(c+1)){s+=d;}else if(i>=(e-1) && i<(e+1)){s+=f;}else{s+='0';}}return s;}
T.f(1);

运行效果图如下:

javascript实现根据3原色制作颜色选择器的方法

javascript实现根据3原色制作颜色选择器的方法

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery JSON的解析方式
Jul 25 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 Javascript
js倒计时小程序
Nov 05 Javascript
Javascript实现滚动图片新闻的实例代码
Nov 27 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
Mar 26 Javascript
javascript截取字符串小结
Apr 28 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
Node.js开发第三方微信公众平台
Jun 05 Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
微信小程序语音同步智能识别的实现案例代码解析
May 29 Javascript
javascript实现树形菜单的方法
Jul 17 #Javascript
JSON与XML优缺点对比分析
Jul 17 #Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 #Javascript
JavaScript用select实现日期控件
Jul 17 #Javascript
纯javascript制作日历控件
Jul 17 #Javascript
javascript生成不重复的随机数
Jul 17 #Javascript
jQuery实现径向动画菜单效果
Jul 17 #Javascript
You might like
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Python 时间处理datetime实例
2008/09/06 Python
Python中集合类型(set)学习小结
2015/01/28 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python实现多人聊天室
2020/03/31 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python圣诞树编写实例详解
2020/02/13 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python PIL库图片灰化处理
2020/04/07 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
Java程序员常见面试题
2015/07/16 面试题
2014年班组工作总结
2014/11/20 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
中秋节慰问信
2015/02/15 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
python opencv通过按键采集图片源码
2021/05/20 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS