<b>});</b>
Этот прием с передачей объекта обычно применяется при использовании универсального метода
<b>animate(),</b>
но он также может применяться и при работе с методами простых анимационных эффектов. Использование объекта позволяет также определять и другие, расширенные параметры, такие как параметры управления очередью и переходами эффектов. Доступные параметры будут описаны в разделе 19.5.2.2.
Отключение анимационных эффектов
Анимационные эффекты стали нормой на многих веб-сайтах, но они нравятся не всем пользователям: некоторые считают их раздражающими, а кто-то даже может испытывать неприятные ощущения. Пользователи с ограниченными возможностями могут обнаружить, что анимационные эффекты затрудняют использование вспомогательных технологий, таких как программы чтения с экрана, а владельцы устаревших компьютеров будут ощущать нехватку вычислительных мощностей. В качестве жеста уважения к своим пользователям вы должны стараться использовать более простые анимационные эффекты и в небольшом количестве, а также предоставлять возможность полностью отключать их. Библиотека jQuery дает простую возможность отключить сразу все эффекты: достаточно просто установить свойство
<b>jQuery.fx.off</b>
в значение true. В результате продолжительность всех эффектов будет установлена равной 0 миллисекунд, что заставит их выполняться мгновенно, без анимации.
Чтобы дать пользователям возможность отключать анимационные эффекты, можно включить в сценарий следующий фрагмент:
<b>$(".stopmoving").click(function() { jQuery.fx.off = true; });</b>
Затем веб-дизайнер должен включить в страницу элемент с классом «stopmoving», щелчок на котором будет отключать воспроизведение анимационных эффектов.
************************************************
19.5.1. Простые эффекты
Библиотека jQuery реализует девять методов простых анимационных эффектов скрытия и отображения элементов. Их можно разделить на три группы по типам воспроизводимых ими эффектов:
<b>fadeIn(), fadeOut(), fadeTo()</b>
Это самые простые эффекты: методы
<b>fadeIn()</b>
и
<b>fadeOut()</b>
просто управляют CSS-свойством
<b>opacity</b>
, чтобы скрыть элемент или сделать его видимым. Оба принимают необязательные аргументы, определяющие продолжительность и функцию обратного вызова. Метод
<b>fadeTo()</b>
несколько отличается: он принимает аргумент, определяющий конечное значение непрозрачности и плавно изменяет текущее значение непрозрачности элемента до указанного. В первом обязательном аргументе методу
<b>fadeTo()</b>
передается продолжительность (или объект с параметрами), а во втором обязательном аргументе - конечное значение непрозрачности. Функция обратного вызова передается в третьем необязательном аргументе.
<b>show(), hide(), toggle()</b>
Метод
<b>fadeOut(),</b>
описанный выше, делает элемент невидимым, но сохраняет занимаемую им область в документе. Метод
<b>hide(),</b>
напротив, удаляет элемент из потока документа, как если бы его CSS-свойство display было установлено в значение none. При вызове без аргументов методы
<b>hide()</b>
и
<b>show()</b>
просто немедленно скрывают и отображают выбранные элементы. Однако при вызове с аргументом, определяющим продолжительность (или объект с параметрами), они воспроизводят анимационный эффект скрытия или появления. Meтод
<b>hide()</b>
уменьшает ширину и высоту элемента до 0 и одновременно уменьшает до 0 непрозрачность элемента. Метод
<b>show()</b>
выполняет обратные действия.
Метод
<b>toggle()</b>
изменяет состояние видимости элементов: для скрытых элементов он вызывает метод
<b>show(),</b>
а для видимых - метод
<b>hide().</b>
Как и при работе с методами
<b>show()</b>
и
<b>hide(),</b>
чтобы воспроизвести анимационный эффект, методу
<b>toggle()</b>
необходимо передать продолжительность или объект с параметрами. Передача значения true методу
<b>toggle()</b>
эквивалентна вызову метода
<b>show()</b>
без аргументов, а передача значения false - вызову метода
<b>hide()</b>
без аргументов. Обратите также внимание, что если передать методу
<b>toggle()</b>
одну или более функций, он зарегистрирует обработчики событий, как описывалось в разделе 19.4.1.
<b>slideDown(), slideUp(), slideToggle()</b>
Метод
<b>slideUp()</b>
скрывает выбранные элементы в объекте
<b>jQuery</b>
, постепенно уменьшая их высоту до 0, и затем устанавливает CSS-свойство display в значение «попе». Метод
<b>slideDown()</b>
выполняет противоположные действия, чтобы сделать скрытый элемент видимым. Метод
<b>slideToggle()</b>
переключает состояние видимости элементов, используя методы
<b>slideUp()</b>
и
<b>slideDown().</b>
Каждый из этих трех методов принимает необязательные аргументы, определяющие продолжительность и функцию обратного вызова (или объект с параметрами).
Следующий пример демонстрирует использование методов из всех трех групп. Имейте в виду, что по умолчанию библиотека jQuery ставит анимационные эффекты в очередь, что обеспечивает их выполнение по очереди:
<b>// Растворить все элементы, затем показать их, затем свернуть и развернуть </b>
<b>$("img").fadeOut().show(300).slideUp().slideToggle();</b>
Различные расширения библиотеки jQuery (раздел 19.9) добавляют в нее дополнительные анимационные эффекты. Наиболее полный набор эффектов включает библиотека jQuery UI (раздел 19.10).
19.5.2. Реализация собственных анимационных эффектов
Метод
<b>animate()</b>
позволяет воспроизводить более сложные анимационные эффекты, чем методы простых эффектов. Первый аргумент метода
<b>animate()</b>
определяет воспроизводимый эффект, а остальные аргументы - параметры этого эффекта. Первый аргумент является обязательным: это должен быть объект, свойства которого задают CSS-атрибуты и их конечные значения. Метод
<b>animate()</b>
плавно изменяет CSS-свойства всех элементов от текущих их значений до указанного конечного значения. То есть эффект, воспроизводимый описанным выше методом
<b>slideUp(),</b>
можно, например, реализовать, как показано ниже: