【发布时间】:2018-09-08 04:20:33
【问题描述】:
我正在构建什么
大家好!我正在构建一个 Pixel Art Maker。
它基本上是一个网格,当你点击它时,网格上的每个单元格都会改变颜色。
这是一个应该允许在同一画布上使用不同颜色的应用程序。
问题:
如何通过用户选择的颜色输入在同一个网格上允许多种不同的颜色?
例如,我知道如何让它全黑(目前是硬编码的),但如果我想添加更多颜色,我该怎么做?
JS Fiddle 演示
https://jsfiddle.net/JayS5/foznjb2m/
JS 代码
const canvas = document.querySelector('#pixelCanvas')
const tbody = document.createElement('tbody');
canvas.addEventListener('click', function(e){
e.target.style.background = 'black';
});
canvas.addEventListener('dblclick', function(e){
e.target.style.backgroundColor = 'white';
});
// Store the value of columns
const column = document.getElementById('column');
// Store the value of rows
const row = document.getElementById('row');
// Access forms
const submitForm = document.querySelector('#submitForm');
submitForm.addEventListener('submit', function(e){
e.preventDefault(); // Prevents the submit button from refreshing the page by default
tbody.innerHTML = "";
// Color picker
const colorPicker = document.createElement('div');
colorPicker.setAttribute("id", "ActiveColor")
colorPicker.innerHTML = '<input type="color" id="head" name="color" value="#e66465"/>';
document.body.appendChild(colorPicker);
// Generate grid
for (r = 0; r < row.value; r++) {
const tr = document.createElement('tr');
tbody.appendChild(tr);
for (c = 0; c < column.value; c++) {
const td = document.createElement('td');
tr.appendChild(td);
}
canvas.appendChild(tbody);
}
});
【问题讨论】:
标签: javascript colors color-picker