@Kozgemikin

Проблемы с setInterval, в чём проблема?

Сделал код для передвижения изображения по экрану . Работает не совсем как задумывалось , интервал не работает , остаётся только поместить функции в другие , анонимные функции , и только тогда интервалы будут работать . Создавать отдельную функцию для каждой переменной и для каждого изображения не охота . Хотелось бы узнать вариант несколько поудобней . Код :
var positionf = function() {
$(this.id).offset({
left: this.left ,
top: this.top
}) ;
} ;
var movingleft = function() {
this.left -= this.speed ;
} ;
var movingup = function() {
this.top -= this.speed ;
} ;
var movingright = function() {
this.left += this.speed ;
} ;
var movingdown = function() {
this.top += this.speed ;
} ;
var img = {
id : "#2",
left : 666 ,
top : 400 ,
position: setInterval( function(){ positionf.bind(img).call() } , 15) ,
speed : 1 ,
ml : movingleft.bind(img) ,
mr : movingright.bind(img) ,
mu : movingup.bind(img) ,
md : movingdown.bind(img)
} ;
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
class MyImage {
  constructor({
    speed,
    left,
    right,
    top,
    bottom,
    id,
  }) {
    this.speed = speed;
    this.top = top || 0;
    /* ... */
  }
  moveDown() {  /* ... */ }
  moveUp() {  /* ... */ }
  moveRight() {  /* ... */ }
  moveLeft() {  /* ... */ }
  positionF() {  /* ... */ }
}

const img = new MyImage({
  id: '#2',
  speed: 1,
  left : 666,
  top : 400,
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы