首先,我有一个idrame动画,id为“test”
<iframe id="test" src=""></iframe>
然后我想要动画并隐藏它,像MacOS一样产生近距离效果:
$('#test').animate({
'width':0,
'height':0,
'top':$('input').offset().top,
'left':$('input').offset().left
},function(){
//$(this).hide();
}).hide();
但似乎iframe无法隐藏。但是,如果我在动画中的回调函数中编写它,这是上面带注释的代码。它可以再次工作。
所以我想知道为什么animate()之后的hide()不起作用?我错过了什么吗?
答案 0 :(得分:10)
要回答您的问题,在致电.hide()
后,.animate()
的电话会立即立即执行,因此.hide()
调用实际发生在动画完成之前,(.animate()
以异步方式运行) - 这就是jQuery为您提供回调函数的原因,以便您可以通知动画何时完成。
$('#test').animate({
'width':0,
'height':0,
'top':$('input').offset().top,
'left':$('input').offset().left
}, function(){
$("#test").hide();
});
在[{3}}
上为您保存此内容答案 1 :(得分:0)
将opacity
设置为hide
,它会起作用:
$('#mask').click(function () {
$('#mask').fadeOut(500);
$('#test').animate({
opacity: 'hide',
'top':$('input').offset().top,
'left':$('input').offset().left,
},3000);
});