@DarCKoder

Как выполнять определённые действия, при зажатой клавише?

Доброе утро.
Интересует как можно выполнять определённые повторяющиеся действия при зажатии клавише.
Что я хочу сделать:
Есть блок див, округлённый, закрашенный, генерируется рандомно на странице.
Так же генерируется определённый участок, куда этот круг должен добраться.
И при зажатии клавиши "W", необходимо что круг двигался вверх без остановки.
Пока что удалось сделать передвижение по 1px, т.е. нажал на "W" и он на 1px сдвинулся вверх. Теперь хочу научить его двигаться непрерывно при зажатии клавиши.
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
function increase() {
            value += step;
            if (max < Infinity && value > max) value = max;
            $inp.val(value);
}

function decrease() {
            value -= step;
            if (value < min) value = min;
            $inp.val(value);
}

function repeatIncrease() {
            repeatTimeout = setTimeout(function () {
                repeatInterval = setInterval(increase, SPIN_INTERVAL);
            }, SPIN_DELAY);
}

function repeatDecrease() {
            repeatTimeout = setTimeout(function () {
                repeatInterval = setInterval(decrease, SPIN_INTERVAL);
            }, SPIN_DELAY);
}

$el.on('click', '.spin__button_increase', increase);
$el.on('click', '.spin__button_decrease', decrease);
$el.on('mousedown', '.spin__button_increase', repeatIncrease);
$el.on('mousedown', '.spin__button_decrease', repeatDecrease);
$el.on('mouseup mouseleave', '.spin__button', () => {
            clearTimeout(repeatTimeout);
            clearInterval(repeatInterval);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы