bakınız demo: jsFiddleBu garip jQuery .animate() gecikmesi nasıl önlenir?
- Ben 'gösterisi'/
- Her şey gayet iyi çalışıyor 'iptal' tıklandığında getirildiğinde basit bir form var, ancak sen tıklarsanız şeklidir kısa bir süre sonra 'iptal' ortaya çıktığında, animasyonun'a bile başlamadan 2-3 saniye gecikmesi var.
- 'İptal' i tıklamadan önce birkaç saniye beklerseniz bu olmaz. Tüm test edilmiş tarayıcılarda gecikme (örn., Ff, krom) meydana gelir.
1. Bu gecikmeye ne neden olabilir ve nasıl önlenebilir? 2. Bu animasyon dizisini kodlamanın daha iyi bir yolu var mı? Bu gecikmelerden sakınmak için daha iyi bir yol var mı?
HTML:
<div id="newResFormWrap">
<form id="newResForm" action="" method="post" name="newRes">
<div id="newResFormCont">
<h3>title</h3>
<p>form!</p>
<div class="button" id="cancelNewRes">Cancel</div>
</div>
</form>
</div>
<div class="button" id="addRes">show</div>
jQuery: En hareketlendirmek aramadan önce
$("#newResForm").css({opacity: 0});
$("#addRes").click(function() {
toggleNewRes()
});
$("#cancelNewRes").click(function() {
toggleNewRes()
});
//toggleNewRes
function toggleNewRes() {
if ($("#newResFormWrap").css('display') == "none") {//if hidden
$("#addRes").animate({ opacity: 0 }, 'fast', function() {
$("#newResFormWrap").toggle('fast', function(){
$("#newResForm").animate({ opacity: 100 },2000);
});
});
} else { //if visible
$("#newResForm").animate({ opacity: 0 }, 100,function() {
$("#newResFormWrap").toggle('fast', function(){
$("#addRes").animate({ opacity: 100 });
});
});
}
}
güzel açıklama – Roy
Mükemmel cevap. –