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 白痴级入门教程
Nov 11 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
简单的分页代码js实现
May 17 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 Javascript
6种JavaScript继承方式及优缺点(小结)
Feb 06 Javascript
详解vue中v-for的key唯一性
May 15 Vue.js
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与paypal整合方法
2010/11/28 PHP
php简单的会话类代码
2011/08/08 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php类常量的使用详解
2013/06/08 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
vue项目中axios使用详解
2018/02/07 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
使用FormData实现上传多个文件
2018/12/04 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
艺术设计专业个人求职信
2014/04/10 职场文书
企业文化演讲稿
2014/05/20 职场文书
答谢酒会主持词
2015/07/02 职场文书
关于车尾的标语大全
2015/08/11 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis