2014-09-05 86 views
0

我试图关闭我之前附加到主体的通知面板。.animate()和.remove()不能很好地结合在一起

$('#notify-panel').animate({top: -250},{duration: 1000, easing: 'easeInOutBack'}); 

这本身,效果很好,但我的目标是,所以我加了一个.remove()语句中的动画完成后删除其移动DIV对象。

$('#notify-panel').animate({top: -250},{duration: 1000, easing: 'easeInOutBack'}); 
$('#notify-panel').remove(); 

当我运行这个,面板被删除从身体但动画不会执行,图层不见了。所以我添加了.remove()作为回调的一部分。

$('#notify-panel').animate({top: -250},{duration: 1000, easing: 'easeInOutBack'}, {callback: function(){ $(this).remove(); }}); 

这个网状结构与之前的步骤一样,其中图层从未被动画移除过。所以我的问题是,如果我想动画一个div层然后将其删除,我将如何去做。显然,我做错了什么。

+0

了jQuery UI的页面上的例子做好demoing这一切的东西......这是什么你做这些例子不能解决? – ControlAltDel 2014-09-05 17:48:57

回答

3

这可能是由reading the manual解决。使用以下之一:

$('#notify-panel').animate({ 
    top: -250 
}, { 
    duration: 1000, 
    easing: 'easeInOutBack', 
    complete: function() { 
     $(this).remove(); 
    } 
}); 

或者:

$('#notify-panel').animate({ 
    top: -250 
}, { 
    duration: 1000, 
    easing: 'easeInOutBack' 
}, function() { 
    $(this).remove(); 
}); 
1

其中之一,你错过了值和px的引号。

我会写这样的:

$('#notify-panel').animate({ 
    top: '-250px' 
}, { 
    easing: 'easeInOutBack' 
}, 1000, function() { 
    $(this).remove(); 
}); 
+0

'px'不是必需的。 – 2014-09-05 17:49:27

+0

你在混合编写'.animate()'的两种方式,你确定它工作吗? – 2014-09-05 17:49:27

相关问题