jQuery颜色面板插件

/**
 * jQuery颜色面板插件
 *
 * 使用方法:input框的id默认为inputObj,button框的id默认为btnObj,也可以自定义aaa,bbb
 *          1、初始化颜色面板:$.color.initColor();
 *          2、绑定颜色面板:$.color.showColor();或者$.color.showColor({inputObj:‘aaa‘,btnObj:‘bbb‘})
 * @author Ivan [email protected]
 * @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);
时间: 2024-10-05 06:24:31

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

jquery数字打分插件与嵌入到EasyUI datagrid中的示例

这阵儿是断续折腾定性考评表打分的事儿了.虽是UI菜鸟,但却一直想让用户在操作上更加方便,之前基于"jQuery星级评分插件"实现了一个评分界面(因为比较简单,就不做总结了),用户反应还不错. 这一次的评分表中,各项分值的特点有:一是每个评分项的分值均不太一样:二是分值为整数,但分值范围大,从-1000到+1000都存在.若是采用在datagrid中嵌入编辑框的形式实现的话,总是觉得让用户使用不太方便,所以内心非常想做一个数字插件,然后就搜到中意的例子--"简单的jQuery用

基于jQuery的滚动条插件-jquery.jscrollbar

jquery.jscrollbar 是一个基于jQuery的滚动条插件,支持水平滚动条和垂直滚动条,支持鼠标键盘事件 主要功能 支持水平滚动条 支持垂直滚动条 自动判断水平滚动条和垂直滚动条是否显示 支持外部调用来滚动内容 支持滚动条部分样式自定义 支持键盘方向键控制 支持鼠标滚动(需要mousewheel插件) 支持滚动条显示位置设置(外部|悬浮) 支持手动更新界面 依赖的库 jQuery (http://jquery.com/) jquery.jqdrag (https://github.c

jQuery 网格布局插件

如今,大多数网站设计要靠网格系统和布局,这能够提供给设计人员一个方便的途径来组织网页上的内容.网格的设计最常见于报纸和杂志的版面,由文字和图像构成的列组成. 这篇文章给大家分享精心挑选的15款最佳的 jQuery 网格布局插件(jQuery Grid Plugins),它可以帮助你在创建网格布局项目时大大缩短开发时间. 1. Freewall Freewall 是一个跨浏览器和响应式的 jQuery 插件,以帮助您创建多种类型的网格布局:灵活的布局,图像布局,嵌套网格,流体网格,Metro 风格

jQuery 封装、插件浅析

今天小码哥突发兴致想学习jQuery.当正在研究一个不错的插件的时候,又突然有了一个疑问,那就是为啥很多大拿前辈们在封装自己写的插件的时候总是按照这个格式:如;(function($){})(jQuery);.或者是这样定义方法对象的?如:$.fn.add=function(){}啥的!!尤其是后一个$.fn中的fn是干什么的?(大家不要笑俺,,,小码哥也是初学者,还有很多没有达到深刻理解的境界.)因此,偶就上网借鉴了一下别人总结的,然后又加上俺自己的理解,成就了一下的一片博文! 大家都晓得,j

jquery图片播放插件Fancybox使用详解

今天给大家介绍的jquery图片播放插件叫Fancybox,相比LightBox来说,Fancybox相对庞大点,配置也更丰富一些,相信你会喜欢的. Fancybox的项目主页地址:http://fancybox.net/ Fancybox的特点如下: 可以支持图片.html文本.flash动画.iframe以及ajax的支持 可以自定义播放器的CSS样式 可以以组的形式进行播放 如果将鼠标滚动插件(mouse wheel plugin)包含进来的话Fancybox还能支持鼠标滚轮滚动来翻阅图片

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

转载: http://www.cnblogs.com/chu888chu888/archive/2012/12/22/2828962.html 作者:Leonel Hilario翻译:Terry li - GBin1.com英文: 5 Top jQuery Chart Libraries for Interactive Charts 目前对于简单快速的开发图的需要使得大家需要找到一种相对简单的方式来开发互动的图表.jQuery和其他js类库使得我们可以更容易的在(X)HTML中访问数据的呈现.

整屏滚动效果 jquery.funnPage.js插件+CSS3实现

最近很流行整屏滚动的效果,无论是在PC端还是移动端,本人也借机学习了一下,主要通过jquery.funnPage.js插件+CSS3实现效果. 本人做的效果: 首先使用要引入插件 <link rel="stylesheet" href="../c/jquery.fullPage.css" media="all"/> <script type="text/javascript" src="../j/l

jQuery 图像裁剪插件Jcrop

Jcrop简介 Jcrop 是一个功能强大的 jQuery 图像裁剪插件,结合后端程序(例如:PHP)可以快速的实现图片裁剪的功能. Jcrop是一款免费的软件,采用MIT License发布. 注:本文主要围绕 Jcrop v2.0.0-RC1 版本进行介绍,一些参数或API在 Jcrop v0.9.12 及之前版本中可能并不支持. 版本 Jcrop v0.9.12 支持画一个框截取图片. Jcrop v2.0.0-RC1 相比于老版本,新增了支持画多框的功能. 下载地址: http://jc

liMarquee – jQuery无缝滚动插件

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><title>jQuery无缝滚动插件liMarquee演示-向上滚动_dowebok</title><link rel="stylesheet" href="css/liMarquee.css"><style>