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的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
JavaScript获取网页支持表单字符集的方法
Apr 02 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
JS声明式函数与赋值式函数实例分析
Dec 13 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
vue路由守卫+登录态管理实例分析
May 21 Javascript
微信小程序中如何使用flyio封装网络请求
Jul 03 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
桌面中心(三)修改数据库
2006/10/09 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
python 获取等间隔的数组实例
2019/07/04 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
python高级特性简介
2020/08/13 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
30年同学聚会感言
2014/01/30 职场文书
门店业绩提升方案
2014/06/08 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
2014全年工作总结
2014/11/27 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
css3 文字断裂效果
2022/04/22 HTML / CSS