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 相关文章推荐
javascript显示隐藏层比较不错的方法分析
Sep 30 Javascript
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
jquery怎样实现ajax联动框(一)
Mar 08 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 Javascript
Node.js log4js日志管理详解
Jul 31 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
Oct 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
改造一台复古桌面收音机
2021/03/02 无线电
PHP+DBM的同学录程序(2)
2006/10/09 PHP
第十节--抽象方法和抽象类
2006/11/16 PHP
PHP正则验证Email的方法
2015/06/15 PHP
javascript静态的url如何传递
2007/05/03 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
python else语句在循环中的运用详解
2020/07/06 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
岗位安全生产责任书
2014/07/28 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书