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 相关文章推荐
Prototype中dom对象方法汇总
Sep 17 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
Jan 13 Javascript
JQuery右键菜单插件ContextMenu使用指南
Dec 19 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
为什么要使用Vuex的介绍
Jan 19 Javascript
vue component 中引入less文件报错 Module build failed
Apr 17 Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 Javascript
js类的继承定义与用法分析
Jun 21 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 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
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
js加强的经典分页实例
2013/03/15 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
法制宣传教育方案
2014/05/09 职场文书
普通话宣传标语
2014/06/26 职场文书
化学教育专业自荐信
2014/07/04 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
Golang表示枚举类型的详细讲解
2021/09/04 Golang