Всем здравствуйте.
Есть жук (благодаря РОНИ и danik.js) который двигается при нажатии клавиш вверх, вниз, вправо, влево:
(Приведу только тот код который касается сути вопроса)
Лапа в HTML
<div class="marg">
<div class="bug"> <!-- Жук -->
<div class="limb_left1"> <!-- Лапа -->
<span></span>
</div>
</div>
</div>
А здесь жук в JS
function Bug() {
this.step = 1;
this.rotation = 0;
this.direction = 'top';
this.top = 200;
this.left = 200;
this.element = document.querySelector('.bug');
this.bindKeys();
//--------------------Лапа 1-----------------------------------
this.limb = document.querySelector('.limb_left1');
this.start_limb1 = -35; //Стартовое положение лапы
this.top_limb1 = -35; // Крайнее верхнее положение лапы
this.bottom_limb1 = 17; // Крайнее нижнее положение лапы
this.flag_limb = true; // Флаг лапы
this.step_limb = 5; // Скорость движения лапы
debugger;
}
Я добавил ему пока что одну лапу которая двигается вверх-вниз только при движении жука
(движение осуществляется через transform: rotate(0deg)
//---------------Лапа 1 - верхняя левая----------------------
Bug.prototype.rotate_limb1 = function() {
var style_limb = this.limb.style;
// Переключение флага
if(this.start_limb1 < this.top_limb1) this.flag_limb = true;
if(this.start_limb1 > this.bottom_limb1) this.flag_limb = false;
// Двигаем лапу вверх если флаг true
if(this.flag_limb == true){
this.start_limb1 = this.start_limb1+this.step_limb;
style_limb.transform = 'rotate(' + this.start_limb1 + 'deg)';
}
// Двигаем лапу вниз если флаг false
if(this.flag_limb == false){
this.start_limb1 = this.start_limb1-this.step_limb;
style_limb.transform = 'rotate(' + this.start_limb1 + 'deg)';
}
};
//-----------------------------------------------------------------------
Все работает, все норм, но есть самый главный вопрос - адекватное ли подобное решение? Или может можно сделать проще, лучше и понятнее?