TOC
Need to learn JavaScript? jQuery is a JavaScript framework, so if you don't already know about the JavaScript programming language, we recommend that you learn it now: Learn JavaScript

This article has been localized into Russian by the community.

Эффекты:

Скольжение элементов (sliding)

В предыдущей главе мы рассмотрели как можно изменять видимость объектов с эффектом растворения из jQuery. Однако, иногда лучшим выбором будет эффект скольжения, и для этого в jQuery есть набор соответствующих методов. Давайте начнем с простого примера, в котором используется метод slideDown():

<div id="divTestArea1" style="padding: 50px; background-color: #89BC38; text-align: center; display: none;">
        <b>Hello, world!</b>
</div>
<a href="javascript:void(0);" onclick="ShowBox();">Show box</a>
<script type="text/javascript">
function ShowBox()
{
        $("#divTestArea1").slideDown();
}
</script>

Чтобы снова скрыть этот блок, мы можем воспользоваться методом slideUp(). Оба этих метода имеют одинаковый набор параметров, все они необязательны. Первый параметр позволяет задать продолжительность эффекта в миллисекундах, либо "fast" (быстро), либо "slow" (медленно), которые равны 200 и 600 мс соответственно. Давайте попробуем на примере:

<div id="divTestArea21" style="width: 50px; height: 50px; display: none; background-color: #89BC38;"></div>
<div id="divTestArea22" style="width: 50px; height: 50px; display: none; background-color: #C3D1DF;"></div>
<div id="divTestArea23" style="width: 50px; height: 50px; display: none; background-color: #9966FF;"></div>
<a href="javascript:void(0);" onclick="ShowBoxes();">Show boxes</a>
<script type="text/javascript">
function ShowBoxes()
{
	$("#divTestArea21").slideDown("fast");
	$("#divTestArea22").slideDown("slow");
	$("#divTestArea23").slideDown(2000);
}
</script>

В приведенном примере немного больше HTML, чем обычно, но он здесь только для того, чтобы вы могли увидеть разницу в скорости, с которой появляются блоки. Заметьте, что первый блок появляется почти мгновенно, второй вслед за ним, а третий гораздо медленнее, т.к. ему на выскальзывание требуется целых две секунды.

Теперь второй параметр. Он может быть либо именем функции сглаживания (easing) анимации (их мы в данном пособии использовать не будем) или callback-функцией, которую вы можете предоставить и которая будет вызвана по завершении эффекта. Вот пример такой функции, в которой используется метод slideUp():

<div id="divTestArea3" style="width: 50px; height: 50px; display: none; background-color: #89BC38;"></div>
<script type="text/javascript">
$(function()
{
	$("#divTestArea3").slideDown(2000, function()
	{
		$("#divTestArea3").slideUp(3000);
	});
});
</script>

Такая возможность может быть полезна для комбинации нескольких эффектов, как вы можете видеть. В данном примере написанная нами callback-функция будет вызвана сразу по завершению работы метода slideDown(), и она, в свою очередь, вызовет метод slideUp().

Если вы хотите, чтобы элемент выехал вверх или вниз в зависимости от его текущего состояния, разработчики jQuery предоставили нам полезный метод slideToggle(). Проверьте следующий пример, в котором используется данный метод:

<div id="divTestArea4" style="width: 50px; height: 50px; display: none; background-color: #89BC38;"></div><br />
<a href="javascript:void(0);" onclick="ToggleBox();">Toggle box</a>
<script type="text/javascript">
function ToggleBox()
{
	$("#divTestArea4").slideToggle("slow");	
}
</script>

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!