Добавьте переменную длительности задержки во всплывающий Javascript

попытаться очистить проект затмения

1
задан Jenny 1 March 2019 в 23:02
поделиться

1 ответ

Вы должны будете отказаться от setInterval, поскольку очевидно, что это приводит к интервалам одинаковой продолжительности. Вместо этого используйте setTimeout и оберните его в функцию, которую вы вызываете снова через вложенную setTimeout.

Вот как будет заменена часть setInterval вашего кода:

var startInterval;
var i = 0;
(function loop() {
    $("#popup >p").text(messages_array[i].Message);
    i = (i + 1) % messages_array.length; // next index ...
    $("#close").css("display", "block");
    $("#popup").show();
    startInterval = setTimeout(function() {
        $("#popup>p").text('');
        $("#popup").hide();
        startInterval = setTimeout(loop, duration * (Math.random() * 1.5 + 0.5));
    }, showDuration);
})();

Фактическая пауза между всплывающими окнами теперь установлена ​​на случайную продолжительность между duration/2 и duration*2. Таким образом, вы все еще можете влиять на это.

Что касается остальной части вашего кода: старайтесь избегать применения встроенных стилей. Вместо этого определите классы CSS и назначьте их.

Примечание: как уже упоминалось в комментариях, порядок сообщений больше не является случайным.

0
ответ дан trincot 1 March 2019 в 23:02
поделиться
Другие вопросы по тегам:

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