Free Advanced DHTML Color Picker
When we were developing COPASO, we found that we needed to have a more advanced color picker to work inside the application... and since COPASO is built with DHTML it was easy enough to pull out the picker to use on the other creation pages of our site. Once we'd modularized the color picker code it made sense to offer it to others to use on their own sites and projects. So here is the code to get our Color Picker working on your site for free. (We'll even host the files)
License: Attribution-Noncommercial-Share Alike 3.0 Unported
If you have a need that doesn't fit the license above, contact us.
COLOURlovers Color Picker Demo
Here is the Code You Need & Examples...
Put this Code into Your HTML <head> Section:
<link rel="stylesheet" href="http://colourlovers.com.s3.amazonaws.com/COLOURloversColorPicker/COLOURloversColorPicker.css" type="text/css" media="all" />
<script type="text/JavaScript" src="http://colourlovers.com.s3.amazonaws.com/COLOURloversColorPicker/js/COLOURloversColorPicker.js"></script>
Put this Code into Your HTML <body> Section:
<div id="CLCP" class="CLCP"></div>
<script type="text/JavaScript">
_whichField = "hexValue_0";
CLCPHandler = function(_hex) {
// This function gets called by the picker when the sliders are being dragged. The variable _hex contains the current hex value from the picker
// This code serves as an example only, here we use it to do three things:
// Here we simply drop the variable _hex into the input field, so we can see what the hex value coming from the picker is:
document.getElementById(_whichField).value = _hex;
// Here is where we color the BG of a div to preview the color:
document.getElementById("CLCPUpdateDiv").style.background = ("#" + _hex);
// Giving you control over this function really puts the reigns in your hands. Rewrite this function as you see fit to really take control of this color picker.
}
// Settings:
_CLCPdisplay = "none"; // Values: "none", "block". Default "none"
_CLCPisDraggable = true; // Values: true, false. Default true
_CLCPposition = "absolute"; // Values: "absolute", "relative". Default "absolute"
_CLCPinitHex = "0039B3"; // Values: Any valid hex value. Default "ffffff"
CLCPinitPicker();
</script>
Picker Attached to a Single Text Field:
<input name="YourInputName" id="hexValue_0" style="width: 100px;" maxlength="6" value="0000FF" />
<a href="JavaScript:_whichField='hexValue_0';CLCPshowPicker({_hex: document.getElementById('hexValue_0').value});">Show picker and load the color to the left</a>
Picker Attached to Multiple Text Fields:
Show picker at x=300, y=1400 and don't update it's color
Show picker at x=12, y=1400 and load the color to the left
Show picker and load the color to the left
Show picker at mouse click and don't update it's color
[Example with an image]

Multiple Text Field Example Code:

<input name="YourInputName" id="multipleHexValue_0" style="width: 100px;" maxlength="6" value="FFFFFF" />
<a href="JavaScript:_whichField='multipleHexValue_0';CLCPshowPicker({_x: 300,_y: 200});">Show picker at x=300, y=200 and don't update it's color</a>
<input name="YourInputName" id="multipleHexValue_1" style="width: 100px;" maxlength="6" value="18AB49" />
<a href="JavaScript:_whichField='multipleHexValue_1';CLCPshowPicker({_hex: document.getElementById('multipleHexValue_1').value,_x: 12,_y: 400});">Show picker at x=12, y=400 and load the color to the left</a>
<input name="YourInputName" id="multipleHexValue_2" style="width: 100px;" maxlength="6" value="FF0000" />
<a href="JavaScript:_whichField='multipleHexValue_2';CLCPshowPicker({_hex: document.getElementById('multipleHexValue_2').value});">Show picker and load the color to the left</a>
<input name="YourInputName" id="multipleHexValue_3" style="width: 100px;" maxlength="6" value="FFFFFF" />
<a href="JavaScript:_whichField='multipleHexValue_3';CLCPshowPicker();">Show picker at mouse click and don't update it's color</a>
<input name="YourInputName" id="multipleHexValue_4" style="width: 100px;" maxlength="6" value="000000" />
<img src="http://colourlovers.com.s3.amazonaws.com/images/v3/color_wheel.png" style="vertical-align: -20%; cursor: pointer;" onclick="_whichField = 'multipleHexValue_4'; CLCPshowPicker();" alt="Show picker at mouse click and don't update it's color" title="Show picker at mouse click and don't update it's color" /> [Example with an image]
Here is a break down of the object passed to CLCPshowPicker()
{
_hex: "FF4400", // When a valid hex value is passed, it will set the picker to this hex. Otherwise the picker will not change it's current color [if any].
_x: 12, // If a x coordinate is passed, the picker will move to the x value. Otherwise, the x coordinate from the mouse click will be used.
_y: 400 // If a y coordinate is passed, the picker will move to the y value. Otherwise, the y coordinate from the mouse click will be used.
// All of these variables are optional
}
Feb. 24, 2008 - Update
Fixed a bug in IE where users couldn't click-drag-highlight other objects within the page.
May 1, 2008 - Update
Fixed a conflict this script had with jQuery. Thanks to Ozh at planetOzh.com for the report!







_stefan
There might be a little typo in the code (textfield #1 line #6), I guess it should be something like:
[div id="CLCP" class="CLCP"][/div]
manekineko
Uraniogrezzo
teevio
_stefan
It's changed now. Thank you!
designshrine
elixabeth
ZicoCarioca
:-)
kst
OogeyBoogey
Under which license do you offer the Color Picker?
May I enhance it?
lancefisher
PixlNinja
Thanks for that
-Ben Jacob
valcanno
wares
mtber
Personalife
mtnola
And following into body:
_whichField = "hexValue_0";
CLCPHandler = function(_hex) {
// This function gets called by the picker when the sliders are being dragged. The variable _hex contains the current hex value from the picker
// This code serves as an example only, here we use it to do three things:
// Here we simply drop the variable _hex into the input field, so we can see what the hex value coming from the picker is:
document.getElementById(_whichField).value = _hex;
// Here is where we color the BG of a div to preview the color:
document.getElementById("CLCPUpdateDiv").style.background = ("#" + _hex);
// Giving you control over this function really puts the reigns in your hands. Rewrite this function as you see fit to really take control of this color picker.
}
// Settings:
_CLCPdisplay = "none"; // Values: "none", "block". Default "none"
_CLCPisDraggable = true; // Values: true, false. Default true
_CLCPposition = "absolute"; // Values: "absolute", "relative". Default "absolute"
_CLCPinitHex = "0039B3"; // Values: Any valid hex value. Default "ffffff"
CLCPinitPicker();
And then:
Show picker and load the color to the left
It doesn't work. When I use Firefox WebDeveloper plug-in it reports following error:
document.getElementById(_whichField) has no properties
it also reports multiple CSS warnings:
Unknown property 'filter'. Declaration dropped
http://colourlovers.com.s3......ColorPicker.css Line: 42
Unknown property '-khtml-user-select'. Declaration dropped.
... Line 44 and 68
Unknown property '-user-select'. Declaration dropped.
... Line 45 and 69
Any help would be appreciated and I apologize ahead of time if I'm making a really simple mistake.
Thanks,
Michael
mtnola
error:
document.getElementById(_whichField) has no properties
warnings:
Unknown property 'filter'. Declaration dropped
http://colourlovers.com.s3......ColorPicker.css Line: 42
Unknown property '-khtml-user-select'. Declaration dropped.
... Line 44 and 68
Unknown property '-user-select'. Declaration dropped.
... Line 45 and 69
Thanks,
Michael
mtnola
-Michael
Lost Tsalagi
Thanks
Phil
Lost Tsalagi
Thanks
Glazz
what is wrong?
with this {_hex: document.getElementById('cor_1').value} it doesn't work, but whitout it works very well
SELLER FORUM
Regards from Germany
johnnymorgan
highest
jakaz
designshrine wrote:
phobophile
iristancy
Post a Comment