【发布时间】:2013-01-14 19:54:08
【问题描述】:
查看演示: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 });
});
});
}
}
【问题讨论】:
标签: jquery jquery-animate lag