@sanke46

SetInterval() не останавливается, почему?

При нажатии на должен ускоряться и менять текст с количеством попаданий и после 10 попадания закрыться. Он почему то не ускоряется а все остальное делается хорошо :-)

let topOffset = 0;
            let rightOffset = 0;
            let bottomOffset = 200;
            let leftOffset = 200;
            let speed = 10;
            let interval = setInterval(squareCreator, speed);
            let onOrOff = true;
            let tryCounter = 0;


            function squareCreator () {
              realisation(topOffset,rightOffset,bottomOffset,leftOffset);
            };
       /*Тут типа код
       Цикл, который считает попытки, выводит количество попыток, ускоряет перемещение заголовка */
            $('html').click(function () {
                 if(tryCounter == 10) {
                   clearInterval(interval);
                 } else {

                   tryCounter++;
                   speed = speed/2;
                   $('#heading').text('Hello, world!' + ' ' + tryCounter);
                 }
            });

/*============ methods ========== */

        function realisation(one,two,three,four) {
            if(one < 200){
                topSide();
            } else if (two < 200){
                rightSide();
            } else if (three > 0) {
                bottomSide();
            } else if (four > 0) {
                leftSide();
            } else {
                update();
            }
        };

        function topSide () {
           let top = $('#heading').offset ({
            left: topOffset });
            topOffset++;

            console.log("top")
        };

        function rightSide () {
            let right = $('#heading').offset ({
                top: rightOffset });
            rightOffset++;

            console.log("right")
        };

        function bottomSide () {
            let bottom = $('#heading').offset ({
                left: bottomOffset });
            bottomOffset--;

            console.log("bottom")
        };

        function leftSide () {
            let left = $('#heading').offset ({
                top: leftOffset });
            leftOffset--;

            console.log("left")
        };

        function update() {
            topOffset = 0;
            rightOffset = 0;
            bottomOffset = 200;
            leftOffset = 200;
        };
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Coder321
А почему он должен ускоряться если вы его раз инициализировали и все? В инициализированом интервале уже нельзя менять значения.
Ответ написан
Ваш ответ на вопрос

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

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