На этом шаге мы рассмотрим еще один способ изменения порядка выполнения эффектов.
И последнее замечание, касающееся поочередного воспроизведения эффектов для одного набора элементов: очередность выполнения не соблюдается автоматически для других методов, не являющихся методами воспроизведения эффектов, таких как .css(). Предположим, что необходимо изменить цвет фона элемента <div id="switcher"> на красный после воспроизведения эффекта .slideUp(), но перед эффектом .slideDown(). Мы могли бы попытаться реализовать это так, как показано ниже:
$(document).ready(function() {
$('div.label').click(function() {
var paraWidth = $('div.speech p').outerWidth();
var $switcher = $(this).parent();
var switcherWidth = $switcher.outerWidth();
$switcher
.fadeTo('fast',0.5)
.animate({
'left': paraWidth - switcherWidth
}, 'slow')
.fadeTo('slow',1.0)
.slideUp('slow')
.css('backgroundColor', '#f00')
.slideDown('slow');
});
});
Рис.1. Изменение порядка выполнения эффектов
Полный текст этого примера можно взять здесь.Однако даже хотя программный код, изменяющий цвет фона, помещен в требуемое место в цепочке, цвет изменяется сразу после щелчка мышью.
На следующем шаге мы закончим изучение этого вопроса.