-4
私は2つのデータ列を含むjsファイルを持っています。コル1は、カラーの16進コードを持っており、COL 2(そのコードの)色の名前を持っている:私のHTMLウェブページでJSファイル配列JavaScriptを使用してデータをリタイアするHTMLページのjavacript
// JavaScript Document
/*Below lists the hex and equiv colour.
*/
var mycolors = {
"000000": "Black",
"000080": "Navy Blue",
"0000C8": "Dark Blue",
"0000FF": "Blue",
"000741": "Stratos",
"001B1C": "Swamp",
私がクリックした任意の色を16進値を生成し、カラーピッカーを持っています。
私はその16進数を使ってcol1の外部jsファイルを検索し、col2から色の名前を返すことができるようにします。
ウェブのすべての経験は限られていますが、試行錯誤は失敗しました。
どのようにこれを行うことができますか?
<div class="paletteandbox">
<div class="palette">
<canvas width="234" height="199" id="canvas_picker"></canvas> </div>
<script type="text/javascript">
var canvas = document.getElementById('canvas_picker').getContext('2d');
// create an image object and get it’s source
var img = new Image();
img.src = 'picker3hexagon.gif';
// copy the image to the canvas
$(img).load(function(){
canvas.drawImage(img,0,0);
}); <!-- OK -->
// http://www.javascripter.net/faq/rgbtohex.htm
function rgbToHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}
function toHex(n) {
n = parseInt(n,10);
if (isNaN(n)) return "00";
n = Math.max(0,Math.min(n,255));
return "ABCDEF".charAt((n-n%16)/16) + "ABCDEF".charAt(n%16);
}
$('#canvas_picker').click(function(event){
// getting user coordinates
var x = event.pageX - this.offsetLeft;
var y = event.pageY - this.offsetTop;
// getting image data and RGB values
var img_data = canvas.getImageData(x, y, 1, 1).data;<!-- OK -->
var R = img_data[0];
var G = img_data[1];
var B = img_data[2]; var rgb = R + ',' + G + ',' + B;
// convert RGB to HEX
var hex = rgbToHex(R,G,B);
// making the color the value of the input
$('#rgb input').val(rgb);
$('#hex input').val('#' + hex);
$("#path3349").css("fill", "#" + hex);
$('#hex').val('#' + hex);
});
</script>
</div>
<!-- palette-->
<div class="box">
<script src="colourpicker.js">
var colorhex = hex
var colorname = mycolors[colorhex];
</script>
Selected Background Colour:
<div id="colorname"><input type="text" readonly="readonly" /></input></div>
Background Colour Codes:
<div id="hex"><input type="text" readonly="readonly" /></input>HEX</div>
<div id="rgb"><input type="text" readonly="readonly" /></input>RGB</div>
</div> <!-- box-->
</div> <!-- palette and box-->