/ Published in: JavaScript
Public Domain. Can be slow in IE. Tested on Safari, IE8&7, Opera, and Firefox.
Expand |
Embed | Plain Text
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Color Picker</title> <script type="text/javascript"> <!-- var mouseDown = 0; function get(elmnt) { return document.getElementById(elmnt); } function addPicker(id, red, green, blue, width) { if(id=='picker') { get('selectedColor').style.backgroundColor = 'rgb('+red+', '+green+', '+blue+')'; } for(i=0;i<=width;i++) { line = document.createElement('div'); if(i>20&&i<200) { red--; green--; blue--; } if(id!='picker') { line.className = 'colorPicker'; line.id = 'clr'+red+'_'+green+'_'+blue; } line.style.backgroundColor = 'rgb('+red+', '+green+', '+blue+')'; line.onmousedown = function() { mouseDown = 1; return false; }; line.onmouseup = function() { mouseDown = 0; return false; }; line.onmousemove = function() { if(mouseDown==1) { if(this.className=='colorPicker') { color = this.id.substring(3).split('_'); get('selectedColor').style.backgroundColor = this.style.backgroundColor; get('selectedColor').innerHTML = this.style.backgroundColor; redrawPicker(color[0], color[1], color[2]); } else { get('selectedColor').style.backgroundColor = this.style.backgroundColor; get('selectedColor').innerHTML = this.style.backgroundColor; } } return false; }; get(id).appendChild(line); } } function redrawPicker(red, green, blue) { for(i=0;i<get('picker').childNodes.length;i++) { red--; green--; blue--; get('picker').childNodes[i].style.backgroundColor = 'rgb('+red+', '+green+', '+blue+')'; } } function initialize() { addPicker('picker', 244, 151, 11, 250); addPicker('picker1', 255, 0, 0, 100); addPicker('picker2', 255, 255, 0, 100); addPicker('picker3', 255, 128, 255, 100); addPicker('picker4', 128, 0, 128, 100); addPicker('picker5', 0, 128, 0, 100); addPicker('picker6', 128, 54, 0, 100); addPicker('picker7', 0, 0, 255, 100); addPicker('picker8', 255, 128, 0, 100); } --> </script> <style type="text/css"> <!-- div#selectedColor { width: 91px; height: 79px; margin-bottom: 3px; padding: 5px; text-align: center; } div#picker div { width: 130px; height: 1px; cursor: crosshair; } div#pickers { margin-left: 3px; } div#pickers div { clear: left; cursor: crosshair; } div#pickers div div { width: 1px; height: 20px; float: left; clear: none; } div#shadePicker, div#pickers { float: left; } p { clear: left; padding-top: 1em; } --> </style> </head> <body onload="initialize();"> <div> <h1>Color Picker</h1> <div id="shadePicker"> <div id="picker"></div> </div> <div id="pickers"> <div id="selectedColor"></div> <div id="picker1"></div> <div id="picker2"></div> <div id="picker3"></div> <div id="picker4"></div> <div id="picker5"></div> <div id="picker6"></div> <div id="picker7"></div> <div id="picker8"></div> </div> <p>Public Domain.</p> </div> </body> </html>
You need to login to post a comment.
