见演示:jsFiddle
- 单击“显示”/“取消”时,我有一个简单的表单正在切换
- 一切正常,但如果您在表单显示后不久单击“取消”,动画甚至开始之前会有 2-3 秒的延迟。
- 如果您在单击“取消”之前等待几秒钟,则不会发生这种情况。
- 所有测试的浏览器(即ff、chrome)都会出现延迟。
1. 什么可能导致这种滞后,如何预防?
2. 有没有更好的方法来编码这个动画序列,可以防止任何滞后?
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:
$("#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 });
});
});
}
}