parent
59d48fc39c
commit
8d1614dcb0
@ -0,0 +1,81 @@ |
|||||||
|
var mouseState = -1; |
||||||
|
var selectedColor = "black"; |
||||||
|
var selectedColorBorder = "2px red solid"; |
||||||
|
var unselectedColorBorder = "2px black solid"; |
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded",()=>{ |
||||||
|
var canvas = document.getElementsByClassName("canvas")[0]; |
||||||
|
var MouseListener = (e)=>{ |
||||||
|
e.preventDefault(); |
||||||
|
if (mouseState>=0) { |
||||||
|
if (mouseState<2 && e.target.tagName==="TH") { |
||||||
|
e.target.style.background=selectedColor; |
||||||
|
} else { |
||||||
|
e.target.style.background="white"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
var MouseClickListener = (e)=>{ |
||||||
|
e.preventDefault(); |
||||||
|
} |
||||||
|
var MouseStateUp = (e)=>{ |
||||||
|
e.preventDefault(); |
||||||
|
mouseState = -1; |
||||||
|
} |
||||||
|
var MouseStateDown = (e)=>{ |
||||||
|
e.preventDefault(); |
||||||
|
mouseState = e.button; |
||||||
|
if (e.target.tagName==="TH") { |
||||||
|
if (e.button===0) { |
||||||
|
e.target.style.background=selectedColor; |
||||||
|
} else { |
||||||
|
e.target.style.background="white"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
var generateTable = (columns,rows)=>{ |
||||||
|
var table = document.createElement("table"); |
||||||
|
for (var i=0;i<rows;i++) { |
||||||
|
var row = document.createElement("tr"); |
||||||
|
for (var j=0;j<columns;j++) { |
||||||
|
var col = document.createElement("th"); |
||||||
|
row.appendChild(col); |
||||||
|
} |
||||||
|
table.appendChild(row); |
||||||
|
} |
||||||
|
|
||||||
|
table.addEventListener("click",MouseClickListener); |
||||||
|
table.addEventListener("mouseover",MouseListener); |
||||||
|
table.addEventListener("mouseup",MouseStateUp); |
||||||
|
table.addEventListener("mousedown",MouseStateDown); |
||||||
|
|
||||||
|
canvas.appendChild(table); |
||||||
|
} |
||||||
|
|
||||||
|
var generateColors = (simple)=>{ |
||||||
|
for (var i=0;i<CSS_COLOR_NAMES.length;i++) { |
||||||
|
var dot = document.createElement("span") |
||||||
|
dot.classList.add("dot") |
||||||
|
if (CSS_COLOR_NAMES[i]===selectedColor) { |
||||||
|
dot.style.border=selectedColorBorder; |
||||||
|
} |
||||||
|
dot.style.background=CSS_COLOR_NAMES[i]; |
||||||
|
dot.addEventListener("mousedown",(e)=>{ |
||||||
|
e.preventDefault(); |
||||||
|
var otherDots = document.getElementsByClassName("dot"); |
||||||
|
for (var i=0;i<otherDots.length;i++) { |
||||||
|
var dot = otherDots[i]; |
||||||
|
dot.style.border=unselectedColorBorder; |
||||||
|
} |
||||||
|
e.target.style.border=selectedColorBorder; |
||||||
|
selectedColor = e.target.style.background; |
||||||
|
}) |
||||||
|
canvas.appendChild(dot); |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
generateTable(20,20); |
||||||
|
canvas.appendChild(document.createElement("br")) |
||||||
|
generateColors(false); |
||||||
|
}) |
@ -0,0 +1,18 @@ |
|||||||
|
const CSS_COLOR_NAMES = [ |
||||||
|
"black", |
||||||
|
"silver", |
||||||
|
"gray", |
||||||
|
"white", |
||||||
|
"maroon", |
||||||
|
"red", |
||||||
|
"purple", |
||||||
|
"fuchsia", |
||||||
|
"green", |
||||||
|
"lime", |
||||||
|
"olive", |
||||||
|
"yellow", |
||||||
|
"navy", |
||||||
|
"blue", |
||||||
|
"teal", |
||||||
|
"aqua" |
||||||
|
]; |
After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,15 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<link rel="stylesheet" href="style.css"> |
||||||
|
<script src="colorList.js"></script> |
||||||
|
<script src="canvas.js"></script> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div class="canvas"> |
||||||
|
|
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,20 @@ |
|||||||
|
table,td,th{ |
||||||
|
border:1px gray dashed; |
||||||
|
border-spacing:0px; |
||||||
|
gap:0px; |
||||||
|
} |
||||||
|
th{ |
||||||
|
min-width:16px; |
||||||
|
min-height:16px; |
||||||
|
width:16px; |
||||||
|
height:16px; |
||||||
|
} |
||||||
|
.dot{ |
||||||
|
height: 25px; |
||||||
|
width: 25px; |
||||||
|
background-color: #bbb; |
||||||
|
border-radius: 50%; |
||||||
|
display: inline-block; |
||||||
|
border:2px black solid; |
||||||
|
margin-left:1px; |
||||||
|
} |
Loading…
Reference in new issue