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 EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
js string 转 int 注意的问题小结
Aug 15 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
May 22 Javascript
jQuery实现预加载图片的方法
Mar 17 Javascript
ECMAScript6块级作用域及新变量声明(let)
Jun 12 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
Nov 07 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Sep 01 Javascript
Angularjs的Controller间通信机制实例分析
Nov 07 Javascript
js实现省份下拉菜单效果
Feb 15 Javascript
微信小程序canvas拖拽、截图组件功能
Sep 04 Javascript
微信小程序页面缩放式侧滑效果的实现代码
Nov 15 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 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递归删除多维数组中的某个值
2017/04/17 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python读取文本中的坐标方法
2018/10/14 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
护理学毕业生自荐信
2013/10/02 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
行政上诉状范文
2015/05/23 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
Java集成swagger文档组件
2021/06/28 Java/Android
nginx服务器的下载安装与使用详解
2021/08/02 Servers
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python