Эффекты и анимация в jQuery

Базовые эффекты

Последнее обновление: 1.11.2015

К базовым эффектам в jQuery относятся эффекты скрытия и отображения элементов, которые достигаются с помощью методов show(), hide() и toggle().

Так, например, мы можем скрывать и отображать элементы по клику по кнопке:

<ul>
	<li>Java</li>
	<li>C/C++</li>
	<li>JavaScript</li>
</ul>
<button id="show">Показать</button>
<button id="hide">Скрыть</button>
<script type="text/javascript">
$(function() {
	$('button#show').click(function(){
		$('ul').show();
	});
	$('button#hide').click(function(){
		$('ul').hide();
	});
});
</script>

Таким образом, при нажатии на кнопку "Показать", будет срабатывать метод $('ul').show(), а при нажатии на кнопку "Скрыть", список будет скрыт с помощью метода $('ul').hide().

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

$(function() {
	$('button').click(function(){
		$('ul').toggle();
	});
});

Теперь разберем эти методы подробнее.

Метод hide

Метод hide присваивает у элементов свойству стиля display значение none, тем самым делая элемент скрытым. То же самое мы могли проделать с помощью следующего выражения: css('display', 'none'). Метод hide может принимать следующие формы:

  • hide(): метод без параметров

  • hide([duration][, complete]): принимает два необязательных параметра. Параметр duration указывает как долго анимация элемента будет длиться. По умолчанию его значение равно 400 миллисекунд.

    Параметр complete представляет функцию, вызываемую методом по завершению анимации

  • hide([duration] [, easing][, complete]): то же самое, только добавляется параметр easing, который принимает название функции плавности анимации в виде строки. По умолчанию его значение равно "swing".

    Например, мы можем использовать медленную (hide('slow')) или быструю анимацию (hide('fast')), длительность которых равна соответственно 600 и 200 миллисекунд.

Например:

$('button#hide').click(function(){
		$('ul').hide('slow', function(){
			alert('Элемент скрыт');
		});
	});

Метод show

Метод show отображает элемент, устанавливая то значение для свойства display, которое было до скрытия. Например, если до скрытия элемента у него был определен стиль display: inline, то и после отображения он будет иметь значение inline. Если же стиль не был определен явно, то он будет иметь значение display: block.

Метод show имеет те же самые формы, что и метод hide:

  • show()

  • show([duration][, complete])

  • show([duration] [, easing][, complete])

Допустим, что у нас есть блок параграфов на странице. Единожды у нас виден только один. И мы хотим с помощью кнопок переключать параграфы (то есть фактически изменять их видимость):

<html>
<head>
<meta charset='utf-8'>
<script src="jquery-1.10.1.min.js"></script>
<style>
	#langs p {display:none;}
	#langs p.first {display:block;}
</style>
</head>
<body>
<h3>Выбранный язык</h3>
<div id="langs">
	<p class='first'>Java</p>
	<p>C/C++</p>
	<p>PHP</p>
	<p class='last'>JavaScript</p>
</div>
<button id="prev">Назад</button>
<button id="next">Вперед</button>
<script type="text/javascript">
$(function() {
	var current = $("div#langs p").first();
	$('#next').click(function(){
		 $(current).not('.last').hide("fast", function() {
			current = $(current).next('p');
			$(current).show("fast");
		});
	});
	$('#prev').click(function(){
		 $(current).not('.first').hide("fast", function() {
			current = $(current).prev('p');
			$(current).show("fast");
		});
	});
});
</script>
</body>
</html>

Сначала в устанавливаем стили, чтобы вначале был видимым только один блок.

С помощью выражения var current = $("div#langs p").first(); получаем текущий просматриваемый блок. При загрузке страницы это будет самый первый блок или блок с классом first.

И далее, используя селекторы и фильтры, переключаем видимость через методы show и hide и устанавливаем новый текущий просматриваемый блок.

Метод toggle

Метод toggle сочетает функционал методов hide и show и, если элемент отображается на странице, то ему присваивается стиль display: none. А если элемент скрыт и имеет значение display: none, то он отображается (свойство display получает то значение, которое было до скрытия. Если свойство не было определено явно, то оно будет иметь значение display: block).

Метод toggle имеет те же самые формы, что и метод hide:

  • toggle()

  • toggle([duration][, complete])

  • toggle([duration] [, easing][, complete])

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850