/**
* jQuery颜色面板插件
*
* 使用方法:input框的id默认为inputObj,button框的id默认为btnObj,也可以自定义aaa,bbb
* 1、初始化颜色面板:$.color.initColor();
* 2、绑定颜色面板:$.color.showColor();或者$.color.showColor({inputObj:'aaa',btnObj:'bbb'})
* @author Ivan 2862099249@qq.com
* @date 2014年12月13日 下午3:06:55
* @version V1.0
* @param $
*/
(function($) { $.color = {}; var colorHex = [ '00', '33', '66', '99', 'CC', 'FF' ];
var spColorHex = [ 'FF0000', '00FF00', '0000FF', 'FFFF00', '00FFFF','FF00FF' ]; var colorPanel = '<div id="colorPanel" style="position: absolute; display: none;"></div>'; function initColor() {
$("body").append(colorPanel);
var colorTable = '';
for (var i = 0; i < 2; i++) {
for (var j = 0; j < 6; j++) {
colorTable += '<tr height=12>';
colorTable += '<td width=11 style="background-color:#000000">'; if (i == 0) {
colorTable += '<td width=11 style="background-color:#'+ colorHex[j] + colorHex[j] + colorHex[j] + '">';
} else {
colorTable += '<td width=11 style="background-color:#'+ spColorHex[j] + '">';
} colorTable += '<td width=11 style="background-color:#000000">';
for (var k = 0; k < 3; k++) {
for (var l = 0; l < 6; l++) {
colorTable += '<td width=11 style="background-color:#'+ colorHex[k + i * 3] + colorHex[l]+ colorHex[j] + '">';
}
}
}
} colorTable = '<table width=232 border="0" cellspacing="0" cellpadding="0" style="border:1px #000000 solid;border-bottom:none;border-collapse: collapse" bordercolor="000000">'
+ '<tr height=30><td colspan=21 bgcolor=#ffffff>'
+ '<table cellpadding="0" cellspacing="1" border="0" style="border-collapse: collapse">'
+ '<tr><td width="3"><td><input type="text" id="DisColor" size="6" disabled style="border:solid 1px #000000;background-color:#ffff00"></td>'
+ '<td width="3"><td><input type="text" id="HexColor" size="7" style="border:inset 1px;font-family:Arial;" value="#000000"><a href=### id="_cclose">关闭</a></td></tr></table></td></table>'
+ '<table id="CT" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="000000" style="cursor:pointer;">'
+ colorTable + '</table>';
$("#colorPanel").html(colorTable);
} // 插件的defaults
$.color.defaults = {
inputObj : 'inputObj',
btnObj : 'btnObj'
}; // 十六进制颜色值的正则表达式
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
/* RGB颜色转换为16进制 */
String.prototype.colorHex = function() {
var that = this;
if (/^(rgb|RGB)/.test(that)) {
var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
var strHex = "#";
for (var i = 0; i < aColor.length; i++) {
var hex = Number(aColor[i]).toString(16);
if (hex === "0") {
hex += hex;
}
strHex += hex;
}
if (strHex.length !== 7) {
strHex = that;
}
return strHex;
} else if (reg.test(that)) {
var aNum = that.replace(/#/, "").split("");
if (aNum.length === 6) {
return that;
} else if (aNum.length === 3) {
var numHex = "#";
for (var i = 0; i < aNum.length; i += 1) {
numHex += (aNum[i] + aNum[i]);
}
return numHex;
}
} else {
return that;
}
}; /* 16进制颜色转为RGB格式 */
String.prototype.colorRgb = function() {
var sColor = this.toLowerCase();
if (sColor && reg.test(sColor)) {
if (sColor.length === 4) {
var sColorNew = "#";
for (var i = 1; i < 4; i += 1) {
sColorNew += sColor.slice(i, i + 1).concat(
sColor.slice(i, i + 1));
}
sColor = sColorNew;
}
// 处理六位的颜色值
var sColorChange = [];
for (var i = 1; i < 7; i += 2) {
sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
}
return "RGB(" + sColorChange.join(",") + ")";
} else {
return sColor;
}
}; $.color.showColor = function(options){ var opts = $.extend({}, $.color.defaults, options);
$('#' + opts.btnObj).click(function() {
// 定位
var ttop = $(this).offset().top; // 控件的定位点高
var thei = $(this).height(); // 控件本身的高
var tleft = $(this).offset().left; // 控件的定位点宽 $("#colorPanel").css({
top : ttop + thei + 5,
left : tleft
}); $("#colorPanel").show(); $("#CT tr td").unbind("click").mouseover(function() {
var rgbColor = $(this).css("background-color");
var hexColor = rgbColor.colorHex(); $("#DisColor").css("background-color", hexColor);
$("#HexColor").val(hexColor);
}).click(function() {
var rgbColor = $(this).css("background-color");
var hexColor = rgbColor.colorHex(); $('#' + opts.inputObj).val(hexColor).css("color", hexColor);
$("#colorPanel").hide();
}); $("#_cclose").click(function() {
$("#colorPanel").hide();
}).css({
"font-size" : "12px",
"padding-left" : "20px"
});
});
}; $.color.initColor = function(){
initColor();
$("#colorPanel").hide();
}; })(jQuery);

jQuery颜色面板插件的更多相关文章

  1. 11个JavaScript颜色选择器插件

    几年前,很难找到一个合适的颜色选择器.正好看到很多不错的JavaScript颜色选择器插件,故而把这些编译汇总.在本文,Web设计师和开发人员 Kevin Liew 选取了11个相应插件,有些会比较复 ...

  2. 提升用户体验的最佳免费 jQuery 表单插件

    网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...

  3. 【精心挑选】15款最好的 jQuery 网格布局插件(Grid Plugins)

    如今,大多数网站设计要靠网格系统和布局,这能够提供给设计人员一个方便的途径来组织网页上的内容.网格的设计最常见于报纸和杂志的版面,由文字和图像构成的列组成. 这篇文章给大家分享精心挑选的15款最佳的 ...

  4. Adaptive Backgrounds – jQuery 自适应背景插件

    Adaptive Backgrounds 是一款很特别的 jQuery 插件,可以从图像中提取主导颜色并将它应用到它的父元素.这个插件利用 Canvas 元素和 ImageData 对象.需要注意的是 ...

  5. 三、jQuery--jQuery基础--jQuery基础课程--第10章 jQuery UI型插件

    1.拖曳插件——draggable 拖曳插件draggable的功能是拖动被绑定的元素,当这个jQuery UI插件与元素绑定后,可以通过调用draggable()方法,实现各种拖曳元素的效果,调用格 ...

  6. jQuery 图片剪裁插件初探之 Jcrop

    主页:http://deepliquid.com/content/Jcrop.html 官方下载地址:http://deepliquid.com/content/Jcrop_Download.html ...

  7. 5个最顶级jQuery图表类库插件-Charting plugin

    转载: http://www.cnblogs.com/chu888chu888/archive/2012/12/22/2828962.html 作者:Leonel Hilario翻译:Terry li ...

  8. jquery的常用插件

    jquery的常用插件jquery的常用插件jquery的常用插件jquery的常用插件jquery的常用插件 放大镜: cloud-zoom(这个效果很炫) 图片查看: fancybox(灯箱) t ...

  9. 提示用户体验的最佳免费 Jquery 表单插件

    网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...

随机推荐

  1. 信息属性列表关键字 info.plist

    本文转载至  http://blog.csdn.net/zaitianaoxiang/article/details/6650491 本附录说明了那些可以在束和包的属性列表文件中定义的关键字. 束关键 ...

  2. Ninject学习笔记<三>

    ASP.NET MVC学前篇之Ninject的初步了解 1.介绍 废话几句,Ninject是一种轻量级的.基础.NET的一个开源IoC框架,在对于MVC框架的学习中会用到IoC框架的,因为这种IoC开 ...

  3. 《从零开始学Swift》学习笔记(Day 19)——函数参数传递

    原创文章,欢迎转载.转载请注明:关东升的博客   函数的语法格式如下: func 函数名(参数列表) -> 返回值类型 { 语句组 return 返回值 } 关键字是func. 多个参数列表之间 ...

  4. FFF at Valentine(强连通分量缩点+拓扑排序)

    FFF at Valentine Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  5. 003-诠释 Java 工程师【一】

    一.基础篇 1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③ ...

  6. 20170401 ABAP调用CIS webservice

    问题: SAP  abap SRM java  调webservice 不通, CIS java  这边的webservice 可以通, WHY? key:请求头,系统框架的问题, LF:因为请求头的 ...

  7. (扫盲)WebSocket 教程

    原文地址:http://www.ruanyifeng.com/blog/2017/05/websocket.html WebSocket 是一种网络通信协议,很多高级功能都需要它. 本文介绍 WebS ...

  8. English Phrases

    @1:Phrases requst sth from/of sb 向某人要求某物 a new lease on life   重获新生.焕发生机 state of the art 最先进的 at th ...

  9. 异常:System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)

    异常:System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) 原因:该引用所需.NET Framework版本为4.5 ...

  10. Centos---linux配置 集群搭建

    网络配置 1.创建虚拟机mini1: 1.1.网络配置 NAT网络模式模式 直接修改  /etc/sysconfig/network-script/ifcfg-eth0 输入service netwo ...