Metoda animate v jQuery

Všechny metody, které jsme probírali v předchozích lekcích, jsou poněkud omezené - dělají přesně to, pro co byly vytvořeny. Pokud potřebujete více kontroly nad animací - použijte univerzální metodu animate.

První parametr tato metoda přijímá objekt, ve kterém je třeba nastavit nové hodnoty CSS vlastností, které chcete animovat. A druhým parametrem - čas trvání animace.

Pojďme implementovat tuto metodu na následujícím HTML kódu:

html<button id="button">click me</button>
<div id="elem">text...</div>

Nechť CSS vypadá takto:

css#elem {
  width: 150px;
  height: 150px;
  padding: 10px;
  border: 1px solid green;
}

Pojďme zařídit, aby po kliknutí na tlačítko se prvek zmenšil na následující rozměry: výška - 50px, šířka - 100px:

javascript$('#button').click(function() {
  $('#elem').animate({height: 50, width: 100}, 1000);
});

Pokud zadáte hodnotu v tomto formátu height: '+=50', pak animace bude fungovat takto: k aktuální hodnotě výšky bude přidáno 50px (v našem případě) a prvek bude plynule animován na novou hodnotu. Podívejme se na příklad:

javascript$('#button').click(function() {
  $('#elem').animate({height: '+=50', width: '+=50'}, 1000);
});

Podrobnosti o metodě animate naleznete v referenci jQuery.

animate
Задание 1

Existuje takové rozložení:

html<body>
  <div id="block"></div>
</body>
cssdiv {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  cursor: pointer;
  margin-bottom: 20px;
}

Zařiďte, aby při kliknutí na div s #block se jeho šířka zvětšila na 200px za 1100ms.

Задание 2

Použijte rozložení z prvního úkolu. Zařiďte, aby při každém kliknutí na div s #block se jeho šířka zvětšila o 200px a každé takové zvětšení proběhlo za 900px.

Задание 3

Použijte rozložení z prvního úkolu. Zařiďte, aby při každém kliknutí na div s #block se jeho šířka a výška zvětšily o 100px a každé takové zvětšení proběhlo za 950px.

Задание 4

Použijte rozložení z prvního úkolu. Zařiďte, aby při každém kliknutí na div s #block, se posunul doprava o 100px a každý takový posun proběhl za 700px.