Jquery-ben, hogy lehet elérni, hogy egy animáció csak egyszer fusson le?
Írok egy példát:
// HTML rész
<div id="kocka" style="width: 200px; height: 200px; background-color: red;"></div>
//Jquery rész
$("div#kocka").click(function(){
$(this).animate({"background-color":"green"}, "fast").animate({"background-color":"yellow"}, "fast");
});
Ugye ez a kód annyit csinál, hogy ha a weboldalon a "kocka" ID-vel rendelkező DIV-re kattintok, akkor lecseréli a háttérszínét a DIV-nek. Először zöld-re, majd sárgára.
Eddig nincs is gond vele.
Viszont, ha többször, egymás után kattintok a DIV-en, még mielőtt végigment volna egyszer is az animáció, akkor miután befejezte az animációt, nekiáll még annyiszor lefuttatni az animációt, ahányszor gyors egymásutánban rákattintottam a DIV-re...
Ezt ki lehet valahogy küszöbölni? Tehát, hogy míg végig nem fut az animáció a DIV-en, addig ne észlelje a kattintásokat? És ezáltal ne fusson le többször az.
létrehozol a fg-n kívül egy változót var szabade=true;
clickre if true csinálja és false-ra állítod, majd ha kész az animáció (végéhez még .done()?) vissza true-ra
Próbáld a clearQueue() metódust, amivel törlöd a meglévő futtatott funkciókat. Valahogy így:
$(this).clearQueue().animate({"background-color":"green"}, "fast").animate({"background-color":"yellow"}, "fast");
Köszi Drone007! :)
Sikerült megoldani a problémát. :) (Y)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!