-4
我有一個包含兩列數據的js文件。西1具有十六進制代碼的顏色和第2欄有顏色(的代碼)的名稱:JS文件數組javascript在html頁面中退出數據
// 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",
在我的HTML網頁,我有一個生成任何顏色的十六進制值點擊一個顏色選擇器。
我希望能夠使用該十六進制數在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-->