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创建命名空间(namespace)的最简实现
Dec 11 Javascript
JQuery 1.4 中的Ajax问题
Jan 23 Javascript
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
jQuery前台数据获取实现代码
Mar 16 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
Aug 28 Javascript
使用js 设置url参数
Jul 08 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
Feb 28 Javascript
node.js中的path.extname方法使用说明
Dec 09 Javascript
JavaScript获取一个范围内日期的方法
Apr 24 Javascript
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
layui插件表单验证提交触发提交的例子
Sep 09 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 动态多文件上传
2009/01/18 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
JavaScript面象对象设计
2008/04/28 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
清除输入框内的空格
2016/12/21 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
python中的句柄操作的方法示例
2019/06/20 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python3实现mysql导出excel的方法
2019/07/31 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
婚纱摄影师求职信
2014/03/07 职场文书
个人求职自荐信范文
2015/03/06 职场文书
雷锋的观后感
2015/06/10 职场文书
培训简讯范文
2015/07/20 职场文书
2016国庆促销广告语
2016/01/28 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python