私は、マウスがボックス内のどこにあってもピクセルを描画するための簡単な小さなコードを書いています。クリアボタンも欲しいです。描画は正常に機能しますが、クリアボタンが機能しないようです。これが私の.jsファイルの関連部分です:
function pixel(x, y) {
var pix = document.createElement("div");
pix.setAttribute("style", "position:absolute;left:" + x + "px;top:" +
y + "px;width:3px;height:3px;background:#000;cursor:crosshair");
return pix;
}
var mouseDown = false;
function draw(event) {
if (!mouseDown) return;
var x = event.clientX;
var y = event.clientY;
document.getElementById("box").appendChild(pixel(x, y));
}
/* Neither 1, 2, nor 3 work! */
function clear() {
var box = document.getElementById("box");
/* 1 */
// box.innerHTML = "";
/* 2 */
// box.childNodes = new NodeList();
/* 3 */
for (n in box.childNodes)
box.removeChild(n);
}
私のHTMLファイルの関連部分は次のとおりです。
<body onmousedown="mouseDown=true" onmouseup="mouseDown=false">
<div id="box" onmouseover="document.getElementById('box').style.cursor='crosshair'"
onmousemove="draw(event)"></div>
<button onclick="clear()">Clear</button>
</body>
ボックスもCSSで少しフォーマットされていますが、それは問題ではないはずです。問題は、ボックスからピクセルを削除しているが、ドキュメントなどからは削除していないことだと思いますが、私はJavaScriptの初心者なので、わかりません。