javascript - 给调色板元素边框或标题

标签 javascript jquery css colors color-picker

我有我的jquery频谱插件:Spectrum具有如下颜色的调色板:Palette

我需要为颜色选择器提供一个带有颜色的单独调色板。 有 5 种原色和大约 15 种其他“次要”颜色,因此我想将它们标记/突出显示为原色。例如,在框周围给它们一个黑色边框或为 5 种原色提供标题。

请参阅此 fiddle 作为示例(完整示例): http://jsfiddle.net/bgrins/ctkY3/

<a href='http://bgrins.github.com/spectrum'>&lt;--Spectrum Homepage</a>

<h2>Basic Usage</h2>
<input type='text' class="basic"/>
<em id='basic-log'></em>

<h2>Full Example</h2>
<input type='text' id="full"/>

JS

$(".basic").spectrum({
    color: "#f00",
    change: function(color) {
        $("#basic-log").text("change called: " + color.toHexString());
    }
});

$("#full").spectrum({
    color: "#ECC",
    showInput: true,
    className: "full-spectrum",
    showInitial: true,
    showPalette: true,
    showSelectionPalette: true,
    maxSelectionSize: 10,
    preferredFormat: "hex",
    localStorageKey: "spectrum.demo",
    move: function (color) {

    },
    show: function () {

    },
    beforeShow: function () {

    },
    hide: function () {

    },
    change: function() {

    },
    palette: [
        ["rgb(0, 0, 0)", "rgb(67, 67, 67)", "rgb(102, 102, 102)",
        "rgb(204, 204, 204)", "rgb(217, 217, 217)","rgb(255, 255, 255)"],
        ["rgb(152, 0, 0)", "rgb(255, 0, 0)", "rgb(255, 153, 0)", "rgb(255, 255, 0)", "rgb(0, 255, 0)",
        "rgb(0, 255, 255)", "rgb(74, 134, 232)", "rgb(0, 0, 255)", "rgb(153, 0, 255)", "rgb(255, 0, 255)"], 
        ["rgb(230, 184, 175)", "rgb(244, 204, 204)", "rgb(252, 229, 205)", "rgb(255, 242, 204)", "rgb(217, 234, 211)", 
        "rgb(208, 224, 227)", "rgb(201, 218, 248)", "rgb(207, 226, 243)", "rgb(217, 210, 233)", "rgb(234, 209, 220)", 
        "rgb(221, 126, 107)", "rgb(234, 153, 153)", "rgb(249, 203, 156)", "rgb(255, 229, 153)", "rgb(182, 215, 168)", 
        "rgb(162, 196, 201)", "rgb(164, 194, 244)", "rgb(159, 197, 232)", "rgb(180, 167, 214)", "rgb(213, 166, 189)", 
        "rgb(204, 65, 37)", "rgb(224, 102, 102)", "rgb(246, 178, 107)", "rgb(255, 217, 102)", "rgb(147, 196, 125)", 
        "rgb(118, 165, 175)", "rgb(109, 158, 235)", "rgb(111, 168, 220)", "rgb(142, 124, 195)", "rgb(194, 123, 160)",
        "rgb(166, 28, 0)", "rgb(204, 0, 0)", "rgb(230, 145, 56)", "rgb(241, 194, 50)", "rgb(106, 168, 79)",
        "rgb(69, 129, 142)", "rgb(60, 120, 216)", "rgb(61, 133, 198)", "rgb(103, 78, 167)", "rgb(166, 77, 121)",
        "rgb(91, 15, 0)", "rgb(102, 0, 0)", "rgb(120, 63, 4)", "rgb(127, 96, 0)", "rgb(39, 78, 19)", 
        "rgb(12, 52, 61)", "rgb(28, 69, 135)", "rgb(7, 55, 99)", "rgb(32, 18, 77)", "rgb(76, 17, 48)"]
    ]
});

最佳答案

Demo

每个拇指都将颜色存储为数据,并且该插件具有在显示调色板时运行的回调。我们可以使用这些东西。

创建原色列表

var primary = ["rgb(208, 224, 227)", "rgb(201, 218, 248)", "rgb(207, 226, 243)", "rgb(217, 210, 233)", "rgb(234, 209, 220)"];

添加相关CSS

.primary-thumb{
    border: 1px solid #000;
}

在调色板选项的显示函数中,包含将 CSS 类添加到具有这些颜色的拇指的代码。

show: function () {
    $('.sp-thumb-el').each(function(){
        var this_color = $(this).data('color');
        if ($.inArray(this_color, primary) >= 0){
            $(this).find('.sp-thumb-inner').addClass('primary-thumb');
        }
    });
},

关于javascript - 给调色板元素边框或标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716818/

相关文章:

javascript - 如何在 Vue.js 中获取随机元素

jquery - 浏览器什么时候开始呈现部分传输的 HTML?

Javascript 类丢失;声明之前

javascript - 如何使托管 .js 文件完全私有(private)(不受密码保护或域限制)?

javascript - 在输入时触发焦点事件时使 HTML5 数据列表可见

html - CSS 样式应用的边框仅在 Chrome 中显示不一致

css - Bootstrap 3 和 col-md rows 中 &lt;input&gt; 不可点击

javascript - 如何让 React Native ActivityIndi​​cator 在 onPress 之后出现以显示正在加载某些内容?

javascript - 在 JavaScript 中同步加载和评估动态生成的脚本

Jquery Cycle2 非图像 div 位置问题