Задать вопрос
@zhrjnnrdzjj

Почему переменная ballTop не меняется при вызове функции?

https://codepen.io/thhtxrhj-/pen/VwyQgPJ

Объявлена переменная ballTop, которая равна расстоянию от верхней границы ball до верхней границы viewport.
При вызове функции move ball.style.top уменьшается на аргумент moveSpeed. Значит ballTop должен уменьшиться на значение moveSpeed, и при повторном вызове move кружок(ball) должет изменять значение top уже опираясь на новое значение ballTop, но этого не происходит.

Если при изменении ball.style.top уменьшается расстояние от верхней границы ball до верхней границы viewport,
то почему это не влияет на ballTop?
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Потому что вы её один раз вычисляете при запуске скрипта и больше нигде не меняете.

Должно быть примерно так:
function move(moveSpeed = 10) { 
    const ballTop = ball.getBoundingClientRect().top;

    if (ballTop > 0){
        ball.style.top = ballTop - moveSpeed + "px";
    };
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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