JavaScript. Подробное руководство, 6-е издание, стр. 315
Когда анимационные эффекты запускаются по событиям, возникающим в результате действий пользователя, может потребоваться отменить все текущие и запланированные анимационные эффекты, прежде чем запустить новые. Например:
<b>// Сделать изображения непрозрачными, когда указатель мыши находится над ними.</b><b>// Не забудьте отменить все запланированные анимационные эффекты по событиям мыши! </b><b>$("img").bind({</b><b> mouseover: function() { S(this).stop().fadeTo(300, 1.0); },</b><b> mouseout: function() { S(this).stop().fadeTo(300, 0.5): }</b><b>}):</b>Второй метод, связанный с анимацией, который мы рассмотрим здесь, - это метод
<b>delay().</b><b>delay()</b><b>// Быстро растворить элемент до половины, подождать, а затем свернуть его </b><b>$("img").fadeTo(100. 0.5).delay(200).slideUp();</b>В примере выше, где применялся метод
<b>stop(),</b><b>$("img"). bind({</b><b> mouseover: function() { S(this).stop(true).delay(100).fadeTo(300, 1.0): },</b><b> mouseout: function() { S(this).stop(true).fadeTo(300, 0.5): }</b><b>});</b>Последняя группа методов, с которыми мы познакомимся, предоставляют низкоуровневый доступ к механизму очередей в библиотеке jQuery. Очереди в библиотеке jQuery реализованы в виде списков функций, которые выполняются в порядке их следования. Каждая очередь связана с определенным элементом документа (или с объектом
<b>Document</b><b>Window</b><b>queue().</b><b>this</b>Мы уже знаем, что методам анимационных эффектов можно передавать функции обратного вызова для выполнения некоторых действий по завершении воспроизведения эффекта. Того же эффекта можно добиться, поместив эту функцию в очередь:
<b>// Проявить элемент, подождать, записать в него текст, и изменить его рамку </b><b>$("«message").fadeIn().delay(200).queue(function(next) {</b><b> $(this).text("Пpивeт, Мир!"); // Вывести текст</b><b> next(); // Запустить следующую функцию в очереди</b><b>}).animate({borderWidth: "+=10рх;"}); // Увеличить толщину рамки</b>Аргумент с функцией, который передается функции, помещаемой в очередь, - это новая особенность, появившаяся в версии jQuery 1.4. При использовании более ранних версий библиотеки функции в очереди извлекали следующую функцию «вручную», вызывая метод
<b>dequeue()</b><b>$(this).dequeue(); // Вместо next()</b>Если очередь пуста, метод
<b>dequeue()</b><b>this</b>Кроме того, существует еще несколько методов управления очередью вручную. Метод
<b>clearQueue()</b><b>queue()</b><b>queue(</b><b>queue()</b><b>dequeue()</b><b>$(е).queue(f); // Создать объект jQuery, хранящий е. и вызвать метод queue</b><b>jQuery.queue(e,f); // Просто вызвать вспомогательную функцию jQuery.queue()</b>Наконец, обратите внимание, что методы
<b>queue(), dequeue()</b><b>clearQueue()</b><b>dequeue(),</b>