Я реализовал класс Circle со свойствами:
- x - начальное значение координаты x
- y - начальное значение координаты y
- диаметр - значения ширины и высоты
- цвет - цвет заливки
Метод: draw()
- рисует на экране элемент, который описывается указанными свойствами.
Метод: move({x = 0, y = 0})
- перемещает нарисованный объект по вектору (x, y) - каждый период времени (100 мс) изменяет (добавляет \ вычитает) координаты на значения x и y в соответствии.
И внутренний метод update()
, который изменяет положение нарисованного круга с соответствующими значениями цвета, x, y объекта.
Скажите, почему мой круг не движется с заданными координатами с интервалом в 1 секунду?
class Circle {
constructor(options) {
this.x = options.x;
this.y = options.y;
this.diameter = options.diameter;
this.color = options.color;
}
draw() {
let div = document.createElement('div');
div.style.position = 'absolute';
div.style.left = `${this.x}px`;
div.style.top = `${this.y}px`;
div.style.width = `${this.diameter}px`;
div.style.height = `${this.diameter}px`;
div.style.border = "1px solid;";
div.style.borderRadius = "50%";
div.style.backgroundColor = `${this.color}`;
document.body.appendChild(div);
}
move({x = 0, y = 0}) {
let circle = document.getElementsByTagName('div')[0];
setInterval(function moved() {
circle.style.left = circle.offsetLeft + x + "px";
circle.style.top = circle.offsetTop + y + "px";
}, 1000)
}
_update() {
this.x = x.move;
this.y = y.move;
}
}
let options = {
x: 100,
y: 100,
diameter: 100,
color: 'red'
};
let circle = new Circle(options);
circle.draw();
circle.move({x: 200, y: 200});