jquery的颜色选择插件实例代码


Posted in Javascript onOctober 02, 2008
(function($){ 
$.fn.extend({ 
selectColor:function(){ 
var _d = new Date(); 
var _tem = _d.getTime(); 
return this.each(function(){ 
var showColor = function(_obj){ 
var _left = parseInt($(_obj).offset().left); 
var _top = parseInt($(_obj).offset().top); 
var _width = parseInt($(_obj).width()); 
var _height = parseInt($(_obj).height()); 
var _maxindex = function(){ 
var ___index = 0; 
$.each($("*"),function(i,n){ 
var __tem = $(n).css("z-index"); 
if(__tem>0) 
{ 
if(__tem > ___index) 
{ 
___index = __tem + 1; 
} 
} 
}); 
return ___index; 
}(); 
var colorH = new Array('00','33','66','99','CC','FF'); 
var ScolorH = new Array('FF0000','00FF00','0000FF','FFFF00','00FFFF','FF00FF'); 
var _str = new Array(); 
for(var n = 0 ; n < 6 ; n++) 
{ 
_str.push('<tr height="11">'); 
_str.push('<td style="width:11px;background-color:#'+colorH[n]+colorH[n]+colorH[n]+'"></td>'); 
for(var i = 0 ; i < 3; i++) 
{ 
for(var j = 0 ; j < 6 ; j++) 
{ 
_str.push('<td style="width:11px;background-color:#'+colorH[i]+colorH[j]+colorH[n]+'"></td>'); 
} 
} 
_str.push('</tr>'); 
} 
for(var n = 0 ; n < 6 ; n++) 
{ 
_str.push('<tr height="11">'); 
_str.push('<td style="width:11px;background-color:#'+ScolorH[n]+'"></td>') 
for(var i = 3 ; i < 6; i++) 
{ 
for(var j = 0 ; j < 6 ; j++) 
{ 
_str.push('<td style="width:11px;background-color:#'+colorH[i]+colorH[j]+colorH[n]+'"></td>'); 
} 
} 
_str.push('</tr>'); 
} 
var colorStr = '<div id="colorShowDiv_'+_tem+'" style="width:229px;position:absolute;z-index:'+_maxindex+';left:'+(_left+_width)+'px;top:'+(_top+_height)+'px;"><table style="width:100%; height:30px; background-color:#CCCCCC;"><tr><td style="width:40%;"><div id="colorShow_'+_tem+'" style="width:80px; height:18px; border:solid 1px #000000; background-color:#FFFFFF;"></div></td><td style="width:60%;"><input id="color_txt_'+_tem+'" type="text" style="width:100px; height:16px;" value="#FFFFFF" /></td></tr></table><table id="colorShowTable_'+_tem+'" cellpadding="0" cellspacing="1" style="background-color:#000000;">'+_str.join('')+'</table></div>' 
$("body").append(colorStr); 
var _currColor; 
var _currColor2; 
$("#colorShowTable_"+_tem+" td").mouseover(function(){ 
var _color = $(this).css("background-color"); 
if(_color.indexOf("rgb")>=0) 
{ 
var _tmeColor = _color; 
_tmeColor = _color.replace("rgb",""); 
_tmeColor = _tmeColor.replace("(",""); 
_tmeColor = _tmeColor.replace(")",""); 
_tmeColor = _tmeColor.replace(new RegExp(" ","gm"),""); 
var _arr = _tmeColor.split(","); 
var _tmeColorStr = "#"; 
for(var ii = 0 ; ii < _arr.length ; ii++) 
{ 
var _temstr = parseInt(_arr[ii]).toString(16); 
_temstr = _temstr.length < 2 ? "0"+_temstr : _temstr; 
_tmeColorStr += _temstr; 
} 
} 
$("#color_txt_"+_tem).val(_tmeColorStr); 
$("#colorShow_"+_tem).css("background-color",_color); 
_currColor = _color; 
_currColor2 = _tmeColorStr; 
$(this).css("background-color","#FFFFFF"); 
}); 
$("#colorShowTable_"+_tem+" td").mouseout(function(){ 
$(this).css("background-color",_currColor); 
}); 
$("#colorShowTable_"+_tem+" td").click(function(){ 
$(_obj).val(_currColor2); 
}); 
} 
$(this).click(function(){ 
showColor(this); 
}); 
var _sobj = this; 
$(document).click(function(e){ 
e = e ? e : window.event; 
var tag = e.srcElement || e.target; 
if(_sobj.id==tag.id)return; 
var _temObj = tag; 
while(_temObj) 
{ 
if(_temObj.id=="colorShowDiv_"+_tem)return; 
_temObj = _temObj.parentNode; 
} 
$("#colorShowDiv_"+_tem).remove(); 
}); 
}); 
} 
}); 
})(jQuery);

使用方法:
$(document).ready(function(){ 
$("#要绑定的ID").selectColor(); 
});

注意:要绑定的对像一定要是文本输入框
Javascript 相关文章推荐
编辑浪子版表单验证类
May 12 Javascript
使Ext的Template可以解析二层的json数据的方法
Dec 22 Javascript
表单元素事件 (Form Element Events)
Jul 17 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 Javascript
Node.js学习入门
Jan 03 Javascript
BootStrap与Select2使用小结
Feb 17 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
Sep 30 Javascript
初学JavaScript_03(ExtJs Grid的简单使用)
Oct 02 #Javascript
JavaScript下申明对象的几种方法小结
Oct 02 #Javascript
初学JavaScript第二章
Sep 30 #Javascript
select组合框option的捕捉实例代码
Sep 30 #Javascript
javascript优先加载笔记代码
Sep 30 #Javascript
javascript显示隐藏层比较不错的方法分析
Sep 30 #Javascript
javascript不同页面传值的改进版
Sep 30 #Javascript
You might like
长波有什么东西
2021/03/01 无线电
解析php中call_user_func_array的作用
2013/06/07 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
python负载均衡的简单实现方法
2018/02/04 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
python中class的定义及使用教程
2019/09/18 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
求职自荐信范文格式
2013/11/29 职场文书
初三学习决心书
2014/03/11 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
通讯稿范文
2015/07/22 职场文书
技术入股协议书
2016/03/22 职场文书
python如何读取.mtx文件
2021/04/22 Python
深入浅析Django MTV模式
2021/09/04 Python