Metode animate jQuery

Visas metodes, kuras mēs apskatījām iepriekšējās nodarbībās, ir zināmā mērā ierobežotas - tās dara tieši to, kam tās ir izveidotas. Ja jums nepieciešams vairāk kontroles pār animāciju - izmantojiet universālo metodi animate.

Pirmo parametru šī metode pieņem objektu, kurā jāiestata jaunās CSS īpašību vērtības, kuras vēlaties animēt. Un otro parametru - animācijas izpildes laiku.

Realizēsim šo metodi uz šāda HTML koda:

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

Lai CSS izskatās šādi:

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

Izveidosim tā, lai noklikšķinot uz pogas, elements sarautos līdz šādiem izmēriem: augstums - 50px, platums - 100px:

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

Ja norādīt vērtību šādā formātā height: '+=50', tad animācija strādās šādi: pie pašreizējā augstuma vērtības tiks pieskaitīti 50px (mūsu gadījumā) un elements tiks veikli animēts līdz jaunai vērtībai. Apskatīsim piemērā:

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

Sīkāk par metodi animate skatīties jQuery uzziņu grāmatā.

animate
Задание 1

Ir šāds makets:

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

Izveidojiet tā, lai noklikšķinot uz div ar #block tā platums palielinātos līdz 200px laikā 1100ms.

Задание 2

Izmantojiet maketu no pirmā uzdevuma. Izveidojiet tā, lai pie katra noklikšķinājuma uz div ar #block tā platums palielinātos par 200px un katrs šāds palielinājums notiktu laikā 900ms.

Задание 3

Izmantojiet maketu no pirmā uzdevuma. Izveidojiet tā, lai pie katra noklikšķinājuma uz div ar #block tā platums un augstums palielinātos par 100px un katrs šāds palielinājums notiktu laikā 950ms.

Задание 4

Izmantojiet maketu no pirmā uzdevuma. Izveidojiet tā, lai pie katra noklikšķinājuma uz div ar #block, tas pārvietotos pa labi par 100px un katrs šāda pārvietošanās notiktu laikā 700ms.