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 相关文章推荐
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
JavaScript 大数据相加的问题
Aug 03 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
Jun 22 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 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
基于PHP文件操作的详解
2013/06/05 PHP
php实现aes加密类分享
2014/02/16 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
Python的迭代器和生成器
2015/07/29 Python
详解Python import方法引入模块的实例
2017/08/02 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
会计专业导师推荐信
2014/03/08 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
在校生证明
2015/06/17 职场文书
羊脂球读书笔记
2015/06/30 职场文书
电工实训心得体会
2016/01/14 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis