toggle()
Метод toggle()
скрывает или показывает на странице элементы текущей выборки в зависимости от их текущего состояния и от переданных аргументов. Для скрытых элементов (со свойством display: none
) выполняется метод show()
. Для остальных элементов выполняется метод hide()
.
Если метод вызывается без аргументов, тогда элементы скрываются/показываются мгновенно. Если при вызове метода toggle()
указывается хотя бы один аргумент, тогда выполняется анимация появления элементов. При этом одновременно происходит плавное изменение размеров (width
, height
, margin
и padding
) и прозрачности (opacity
) элементов.
Если элемент был скрыт средствами jQuery, тогда после отображения с помощью метода toggle()
свойство display
получит прежнее значение.
Параметры анимации задаются в виде объекта. Параметры duration
, easing
и complete
можно задать отдельными аргументами.
Варианты использования
jQ_object.toggle() => jQuery
- Мгновенно скрывает/показывает элементы текущей выборки.
jQ_object.toggle([duration][, easing][, complete]) => jQuery
- Выполняет анимацию скрытия/появления элементов выборки изменением размеров и прозрачности.
jQ_object.toggle(опции) => jQuery
- Выполняет анимацию скрытия/появления элементов выборки изменением размеров и прозрачности с учётом указанного объекта опций (параметров анимации).
jQ_object.toggle(show_hide) => jQuery
-
Действие определяется переданным булевым значением:
true
- мгновенно показывает элементы текущей выборки;false
- мгновенно скрывает элементы текущей выборки.
Примеры
<html> <head> <title>Анимация в jQuery</title> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <button class="button_toggle">toggle()</button> <button class="button_show">toggle(true)</button> <button class="button_hide">toggle(false)</button> <div style="width: 200px; height: 200px; background: coral"></div> </body> </html> <script> $('.button_toggle').on('click', function() { $('div').toggle({ duration: 1000, specialEasing: { height: 'linear', width: 'swing' }, progress: function(animation, progress, remainingMs) { $(this).text(remainingMs); }, complete: function() { alert('Анимация завершена'); } }); }); $('.button_show').on('click', function() { $('div').toggle(true); }); $('.button_hide').on('click', function() { $('div').toggle(false); }); </script>