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 Onunload与Onbeforeunload使用小结
Dec 31 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 Javascript
轻轻松松学JS调试(不下载任何工具)
Apr 14 Javascript
Array的push与unshift方法性能比较分析
Mar 05 Javascript
jQuery中页面返回顶部的方法总结
Dec 30 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
React-Native之定时器Timer的实现代码
Oct 04 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 Javascript
Vue2项目中对百度地图的封装使用详解
Jun 16 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开发文档 会员收费1期
2012/08/14 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
NW.js 简介与使用方法
2018/02/01 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
家长会邀请书
2014/01/25 职场文书
校运会广播稿100字
2014/01/27 职场文书
小学生考试获奖感言
2014/01/30 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
市场营销专业自荐书
2014/06/10 职场文书
体育委员竞选稿
2015/11/21 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书