jquery выполнить с задержкой

Есть два несложных скрипта запускающих css анимацию. Задача модифицировать оба кода так, чтобы они начинали выполняться с задержкой в секунду.

  • Вопрос задан более трёх лет назад
  • 7983 просмотра

Решение для первого скрипта:

Решение для второго:

$t::
MouseGetPos, MouseX, MouseY
PixelGetColor, Color1, (MouseX+2), (MouseY+2)
StringSplit, Colorz, Color1
Color1B = 0x%Colorz3%%Colorz4%
Color1G = 0x%Colorz5%%Colorz6%
Color1R = 0x%Colorz7%%Colorz8%
Color1B += 0
Color1G += 0
Color1R += 0

В вашем примере, они одновременно покажутся, чтобы это произошло с задержкой можно сделать так

думаю суть ясна, ну это хорошо, когда элементов 2-4, если же их будет больше, лучше циклом бежать по всем и уже делать по порядку, а то код превратится в помойку

Есть два несложных скрипта запускающих css анимацию. Задача модифицировать оба кода так, чтобы они начинали выполняться с задержкой в секунду.

  • Вопрос задан более трёх лет назад
  • 7983 просмотра

Решение для первого скрипта:

Решение для второго:

$t::
MouseGetPos, MouseX, MouseY
PixelGetColor, Color1, (MouseX+2), (MouseY+2)
StringSplit, Colorz, Color1
Color1B = 0x%Colorz3%%Colorz4%
Color1G = 0x%Colorz5%%Colorz6%
Color1R = 0x%Colorz7%%Colorz8%
Color1B += 0
Color1G += 0
Color1R += 0

В вашем примере, они одновременно покажутся, чтобы это произошло с задержкой можно сделать так

думаю суть ясна, ну это хорошо, когда элементов 2-4, если же их будет больше, лучше циклом бежать по всем и уже делать по порядку, а то код превратится в помойку

Я не могу .delay метод, работающий в jQuery:

Я использую цикл while, чтобы ждать, пока неконтролируемое изменяющееся значение не будет больше или равно другому, и я не могу найти способ приостановить выполнение в течение X секунд.

8 ответов

$.задержка используется для задержки анимации в очереди, а не для остановки выполнения.

вместо использования цикла while вам нужно рекурсивно вызвать метод, который выполняет проверку каждую секунду с помощью setTimeout :

вы также можете просто отложить некоторую операцию таким образом:

JavaScript setTimeout очень хорошее решение:

на delay функция в jQuery в основном используется для задержки анимации в очереди анимации jQuery.

в jQuery!—2—> функция предназначена для использования с эффектами и очередей эффект, см. delay docs и пример в нем:

если вы хотите наблюдать переменную для изменений, вы можете сделать что-то вроде

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

цель jQuery delay() — заставить очередь анимации ждать перед выполнением. Так, например, $(element).delay(3000).fadeIn(250); заставит элемент исчезнуть через 3 секунды.

только javascript будет работать без jQuery

Javascript-это асинхронный язык программирования, поэтому вы не можете остановить выполнение в течение некоторого времени; единственный способ [псевдо]остановить выполнение-использовать setTimeout (), который не является задержкой, а «задержкой обратного вызова функции».

ES6 в функции setTimeout

Edit: 204586560000 ms-приблизительное время между исходным вопросом и этим ответом. если я правильно рассчитал.

Оцените статью