Autor Zpráva
MartinXYZ
Profil *
Ahoj,

mám PHP+jQuery skript na odesílání emailů z formuláře na webu.

Poté, co se podaří email odeslat, je DIV obsahující formulář (<div class="schovat_po_odeslani"><form>...</form></div>) nahrazen odstavcem P, který obsahuje potvrzovací text.

request.done(function (response, textStatus, jqXHR){
$('.schovat_po_odeslani').html('<p class="rv_odeslano">Vaše zpráva byla úspěšně odeslána, děkuji.</p>');
});

Jenže nahrazení proběhne "okamžitě a stránka jakoby poskočí". Šlo by do této části kódu vložit animaci překryvu? Něco jako slideToggle nebo podobně?

Předem moc děkuju za pomoc,
M.
Keeehi
Profil
MartinXYZ:
Jasně že šlo. Napozicuj si to pod to a ten formulář co bude na tím skryješ pomocí .fadeOut()
MartinXYZ
Profil *
Odpovím si sám, kdyby se to někomu hodilo.

.html() se nedá animovat, pouze nahradí jeden prvek druhým, resp. vloží do zvoleného DIVu odstavec P, kterým nahradí vše, co v tom DIVu bylo.

Řešením je toto (animací se skryje původní prvek, nahradí se novým skrytým prvkem, a ten se pak zase animací zobrazí):
request.done(function (response, textStatus, jqXHR){
$('#prvek_ktery_se_nahradi').slideToggle(1000, function(){
var replace = $('<p class="rv_odeslano">Vaše zpráva byla úspěšně odeslána, děkuji.</p>').hide();
$(this).replaceWith(replace);
$('.rv_odeslano').slideToggle(1000);
});
});

M.
Keeehi
Profil
MartinXYZ:
To je víceméně to, co jsem psal.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0