Метод animate в jQuery
Все методы, которые мы разбирали в предыдущих
уроках, несколько ограничены - они делают именно
то, для чего созданы. Если вам нужно больше
контроля за анимацией - используйте универсальный
метод animate
.
Первым параметром этот метод принимает объект, в котором следует задать новые значения CSS свойств, которые вы хотите анимировать. А вторым параметром - время выполнения анимации.
Давайте реализуем данный метод на следующем HTML коде:
<button id="button">click me</button>
<div id="elem">text...</div>
Пусть CSS выглядит так:
#elem {
width: 150px;
height: 150px;
padding: 10px;
border: 1px solid green;
}
Давайте сделаем так, чтобы по нажатию на
кнопку элемент сжался до следующих размеров:
высота - 50px
, ширина - 100px
:
$('#button').click(function() {
$('#elem').animate({height: 50, width: 100}, 1000);
});
Если указать значение в таком формате
height: '+=50', то анимация будет работать
так: к текущему значению высоты будет прибавлено
50px
(в нашем случае) и элемент будет
плавно анимирован до нового значения. Посмотрим
на примере:
$('#button').click(function() {
$('#elem').animate({height: '+=50', width: '+=50'}, 1000);
});
Подробнее про метод animate смотрите в справочнике jQuery.
Есть такая вёрстка:
<body>
<div id="block"></div>
</body>
div {
width: 100px;
height: 100px;
border: 1px solid black;
cursor: pointer;
margin-bottom: 20px;
}
Сделайте так, чтобы при нажатии на див с
#block
его ширина увеличилась до
200px
за 1100мс
.
Используйте вёрстку из первой задачи. Сделайте
так, чтобы при каждом нажатии
на див с #block
его ширина
увеличивалась на 200px
и каждое
такое увеличение происходило бы за
900px
.
Используйте вёрстку из первой задачи. Сделайте
так, чтобы при каждом нажатии
на див с #block
его ширина и
высота увеличивались бы на 100px
и
каждое такое увеличение происходило бы за
950px
.
Используйте вёрстку из первой задачи. Сделайте
так, чтобы при каждом нажатии
на див с #block
, он перемещался бы
вправо на 100px
и каждое
такое перемещение происходило бы за
700px
.