jQuery 颜色 **Swatch** 选择器

Posted

技术标签:

【中文标题】jQuery 颜色 **Swatch** 选择器【英文标题】:jQuery Color **Swatch** Picker 【发布时间】:2011-02-26 14:21:13 【问题描述】:

是否有人编写了一个 jQuery 查询颜色选择器,可以让您从预先确定的颜色列表中选择颜色?类似于电子商务网站上的产品颜色选择器。

我所做的大部分搜索都显示了很多通用的、在 rgb 光谱中选择任何颜色的选项,但很少有选择特定颜色的选项。

【问题讨论】:

【参考方案1】:

嗯,我假设您不想要带有命名值的下拉菜单。

选择你的颜色,然后循环

$.each(['red', 'blue', 'green'], function(i, colour) 

    $('ul#my-colours').append('<li style="background-color: ' + colour + ';">Choose</li>');

);

$('ul#my-colours li').click(function() 
    setColour($(this).css('background-color'));
);

然后让它们说 20 x 20 像素并浮动它们?

【讨论】:

+1 肯定有用 @Alan Storm 当然,我明白。我想知道你是否可以破解现有的解决方案,即限制它生成的颜色数量,并且显然使可点击的目标更大(因为你限制了可用的颜色)。【参考方案2】:

Really Simple Color Picker 允许您设置预定义的颜色(我是英国人 :-P)。它确实允许您使用输入框更改颜色,但是如果您只想要预定义的颜色,则可以使用快速 jQuery 命令禁用它。

【讨论】:

这仍然适用于当前版本的 jquery 吗?我在色块上没有收到任何点击事件。 @Byron Cobb:在 IE、Chrome 和 Firefox 的 1.4.2 中对我来说效果很好。我为你写了一个快速演示,jsfiddle.net/GA67R/1。您需要捕获 change 事件而不是单击事件。 感谢您花时间帮助安迪 - 我的问题是,当我单击初始框时,我什至无法显示颜色选项。使用您的代码,我在 html 中有这样的内容: 这在我的 $(document).ready: $( "#DashboardMenuFontColour").colorPicker().change(function () alert("新颜色是 " + this.value); );它呈现小框而不是输入,但单击它什么也不做。我可能应该开始一个新线程:P【参考方案3】:

他们有!前几天我发现了这颗宝石。 http://acko.net/dev/farbtastic

【讨论】:

感谢您的热情,但您是否阅读了问题?这正是我不想要的。【参考方案4】:

我创建了一个colorpicker,如果有人感兴趣,可以提供此选项:

这是一个工作演示:http://jsfiddle.net/bgrins/S45tW/

$("#showPaletteOnly").spectrum(
    color: "rgb(244, 204, 204)",  
    showPaletteOnly: true,
    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)"]
    ]
);
​

【讨论】:

【参考方案5】:

也许我添加两个便士有点晚了,但这里是我找到的最好的预定义色样组:https://github.com/maxmackie/jquery.swatches

【讨论】:

以上是关于jQuery 颜色 **Swatch** 选择器的主要内容,如果未能解决你的问题,请参考以下文章

PHP Swatch 下载,只生成 2 种颜色?

牛逼的jQuery选择器

jquery在点击事件后等待ajax加载完成

如何从 jQuery Chosen 选择下拉菜单中隐藏或删除选项

jquery 怎么获取对象的id

使用 JS 在悬停时显示文本