JavaScript. Подробное руководство, 6-е издание, стр. 312

<b>});</b>

Этот прием с передачей объекта обычно применяется при использовании универсального метода

<b>animate(),</b>
но он также может применяться и при работе с методами простых анимационных эффектов. Использование объекта позволяет также определять и другие, расширенные параметры, такие как параметры управления очередью и переходами эффектов. Доступные параметры будут описаны в разделе 19.5.2.2.

Отключение анимационных эффектов

Анимационные эффекты стали нормой на многих веб-сайтах, но они нравятся не всем пользователям: некоторые считают их раздражающими, а кто-то даже может испытывать неприятные ощущения. Пользователи с ограниченными возможностями могут обнаружить, что анимационные эффекты затрудняют использование вспомогательных технологий, таких как программы чтения с экрана, а владельцы устаревших компьютеров будут ощущать нехватку вычислительных мощностей. В качестве жеста уважения к своим пользователям вы должны стараться использовать более простые анимационные эффекты и в небольшом количестве, а также предоставлять возможность полностью отключать их. Библиотека jQuery дает простую возможность отключить сразу все эффекты: достаточно просто установить свойство

<b>jQuery.fx.off</b>
в значение true. В результате продолжительность всех эффектов будет установлена равной 0 миллисекунд, что заставит их выполняться мгновенно, без анимации.

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

<b>$(&quot;.stopmoving&quot;).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>$(&quot;img&quot;).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>
можно, например, реализовать, как показано ниже: