jQuery бесконечная анимация, вызывающая ошибку стека вызовов - PullRequest
1 голос
/ 21 июня 2019

Я использую последние версии цветов jQuery и jQuery. Я пытаюсь использовать анимацию, чтобы бесконечно менять цвета моего контейнера. Но когда я запускаю следующий код, я получаю сообщение об ошибке: «Uncaught RangeError: Превышен максимальный размер стека вызовов». Цикл анимации работает правильно, но он блокирует выполнение остальной части моего кода jQuery. Я не знаю, откуда исходит переполнение стека ..!

  let $container = $("#container");
  let colours = ["56, 68, 97", "97, 56, 80", "42, 74, 53", "104, 66, 44"];

  (function colourAnimation() {
    colours.forEach((colour) => {
      $container.animate({"color": "rgb(" + colour + ")",
                          "background-color": "rgba(" + colour + ", 0.2)",
                          "border-color": "rgba(" + colour + ", 0.7)",
                        }, 2500);
    });
    $container.animate({}, 0, "", colourAnimation);
  })()

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Ваш function colourAnimation() заканчивается вызовом метода animate, четвертый параметр которого был передан colourAnimation.
Документы @ https://api.jquery.com/animate/ указывают, что этот 4-й аргумент равен

Функция, вызываемая после завершения анимации, вызывается один раз за согласованный элемент.

Конечно, код будет повторяться бесконечно?

0 голосов
/ 24 июня 2019

Если вы хотите, чтобы ваш код выполнялся бесконечно, просто используйте setInterval(function, time), где время в миллисекундах.Лучшее объяснение можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...