sakuya/widgets/matrix.js

36 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-04-10 00:37:53 +08:00
export default class {
constructor(width, height) {
this.width = width
this.height = height
this.element = document.createElement("div")
this.element.style.cssText = `
margin: 1rem;
background: #f5f5f5;
display: inline-grid;
grid-gap: 4px;
grid-template-rows: repeat(${height}, 1rem);
grid-template-columns: repeat(${height}, 1rem);
`
for (let i = 0; i < width; i++) {
for (let j = 0; j < height; j++) {
let el = document.createElement("div")
el.style.cssText = `
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.5);
text-align: center;
`
this.element.appendChild(el)
}
}
}
setItem(x, y, value) {
let color = `rgba(${value}, ${value}, ${value}, .8)`
this.element.childNodes[this.width * y + x].style.backgroundColor = color
}
setIndex(index, value) {
let color = `rgba(${value}, ${value}, ${value}, .8)`
this.element.childNodes[index].style.backgroundColor = color
}
}