jQuery метод .fadeToggle()
jQuery эффектыОпределение и применение
jQuery метод .fadeToggle() позволяет плавно изменить прозрачность для отдельных элементов (в зависимости от состояния элемента: из видимого в скрытое, либо из скрытого в видимое). Другими словами, метод производит анимацию изменения прозрачности выбранных элементов плавно переводя их из скрытого состояния в видимое, или наоборот из видимого состояния в скрытое.
Обращаю Ваше внимание, что когда метод .fadeToggle() вызывается на видимом элементе, то при достижении уровня прозрачности равному нулю (opacity: 0;) к элементу дополнительно добавляется значение CSS свойства display равное none, благодаря которому элемент не будет отображаться и как следствие влиять на макет страницы на которой он размещен.
jQuery синтаксис:
Синтаксис 1.4.4: $( selector ).fadeToggle( duration, easing, complete ) duration - Number, или String easing - String complete - Function $( selector ).fadeToggle( { options } ) // option: value (описание ниже) options - PlainObject
Добавлен в версии jQuery
1.4.4Значения параметров
Параметр | Описание |
---|---|
duration | Строковое или числовое значение, которое определяет, как долго анимация будет продолжаться. Значение по умолчанию 400 (в миллисекундах). Строковые ключевые слова 'fast' и 'slow' соответствуют 200 и 600 миллисекундам соответственно (высокие значения указывают на медленную анимацию, а более низкие на быструю). |
easing | Ключевое слово (строка), которое опряеделяет кривую скорости для анимации (используется математическая функция - кубическая кривая Безье). Без использования внешних плагинов имеет только два значения - linear (эффект анимации с одинаковой скоростью от начала до конца) и swing (эффект анимации имеет медленный старт и медленное окончание, но скорость увеличивается в середине анимации). Значение по умолчанию swing. |
complete | Функция, которая будет выполнена после завершения анимации, она вызывается один раз для каждого соответствующего элемента. Внутри функции, переменная this ссылается на DOM элемент к которому применяется анимация. |
options |
|
Пример использования
<!DOCTYPE html> <html> <head> <title>Использование jQuery метода .fadeToggle() (с callback функцией)</title> <style></style> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".fadetoggle" ).click(function(){ // задаем функцию при нажатиии на элемент с классом fadetoggle $( "div" ).fadeToggle( 1000, "linear", function(){ // плавно отображаем, или скрываем элементы <div> в документе console.log("toggle completed"); // выводим в консоль браузера информацию о завершении метода для каждого элемента в наборе }); }); }); </script> </head> <body> <button class = "fadetoggle">Метод .toggle()</button> <hr> <div></div> <div></div> <div></div> </body> </html>
В этом примере с использованием jQuery методa .fadeToggle() мы при нажатии на кнопку плавно изменяем прозрачность для всех элементов <div> в документе, скрывая, либо отображая их. При этом мы указали для наших методов продолжительность анимации равную секунде (1000 миллисекунд), эффект анимации происходит с одинаковой скоростью от начала до конца (linear) и функцию, которая после завершения анимации выводит в консоль браузера информацию о завершении выполнения метода для каждого элемента в наборе совпавших элементов.
Результат нашего примера:
Рассмотрим следующий пример в котором передадим в качестве параметра методов .fadeToggle() объект, содержащий различные опции, которые будут контролировать анимацию:
<!DOCTYPE html> <html> <head> <title>Использование jQuery метода .fadeToggle() (объект с опциями в качестве параметра)</title> <style></style> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $( ".fadetoggle" ).click(function(){ // задаем функцию при нажатиии на элемент с классом fadetoggle $( "div" ).fadeToggle( { // плавно отображаем, или скрываем элементы <div> в документе duration: 800, // продолжительность анимации easing: "linear", // скорость анимации complete: function(){ // callback console.log("fadeToggle completed"); }, queue: false // не ставим в очередь }); }); }); </script> </head> <body> <button class = "fadetoggle">Метод .toggle()</button> <hr> <div></div> <div></div> <div></div> </body> </html>
В этом примере с использованием jQuery метода .fadeToggle() мы при нажатии на кнопку плавно изменяем прозрачность для всех элементов <div> в документе, скрывая, либо отображая их. При этом мы в качестве параметров методов передаем объект содержащий следующие параметры:
- продолжительность анимации равную 800 миллисекунд (duration: 800)
- эффект анимации происходит с одинаковой скоростью от начала до конца (easing: linear)
- функция, которая после завершения анимации выводит в консоль браузера информацию о завершении выполнения метода для каждого элемента в наборе совпавших элементов (complete: function).
- анимация не размещается в очереди эффектов (queue: false).
Результат нашего примера:
jQuery эффекты