Создание кругов (div) и добавление его в div#canvas
Я пытаюсь создать новые круги, когда моя ручка зависает на окне. У меня возникают проблемы, когда я не могу добавить круги на страницу. Это просто парит вокруг. Как бы я мог изменить свой код, чтобы добавить круги по мере его зависания.
<!doctype html>
<html>
<head>
<title> JavaScript Environment: Project </title>
<meta charset="utf-8">
<style>
html, body {
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
}
#canvas {
background-color: yellow;
width: 100%;
height: 100%;
}
.pen {
position: absolute;
background-color: lightblue;
width: 10px;
height: 10px;
border-radius: 5px;
}
</style>
<script>
window.onload = function() {
function Circle(x, y) {
this.x = x;
this.y = y;
}
var canvas = document.getElementById("canvas");
canvas.onmousedown = function() {
mouseDown();
};
canvas.onmouseup = function() {
mouseUp()
};
canvas.onmousemove = function() {
mouseMove(event)
};
function mouseDown (){
console.log ("mouse down");
}
function mouseUp (){
console.log ("mouse up");
}
function mouseMove(e) {
var canvas = document.getElementById("canvas");
var pen = document.createElement("div");
var x = e.clientX;
var y = e.clientY;
var coor = "Coordinates: (" + x + "," + y + ")";
pen.setAttribute("class", "pen");
pen.style.left = x + "px";
pen.style.top = y + "px";
document.getElementById("canvas").innerHTML = coor;
canvas.appendChild(pen);
addCircles(x, y);
console.log("location @ " + x + " : " + y);
}
function addCircles(x, y) {
var canvas = document.getElementById("canvas");
var circle = document.createElement("div");
circle.setAttribute("class", "pen");
circle.style.left = x + "px";
circle.style.top = y + "px";
canvas.appendChild(circle);
}
canvas.addEventListener("mouseMove", mouseMove, false);
};
</script>
</head>
<body>
<div id="canvas"></div>
</body>
</html>
1 ответ
Проблема в линии document.getElementById("canvas").innerHTML = coor;
Попробуйте добавить диапазон <span id="canvasText"></span>
внутри вашего div холста, а затем изменив вышеуказанную строку на document.getElementById("canvasText").innerHTML = coor;
,
В существующем состоянии вы "сбрасываете" содержимое холста каждый раз, когда движется мышь, поэтому круги сразу удаляются из него. Сбросьте только промежуток внутри холста, чтобы круги оставались вокруг.