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>