我在使用某些jQuery动画时遇到问题。我设法使flex侧边栏滑动得很好,但是滑出效果有些问题。滑出功能使侧栏立即消失。
另外,我相信我需要hide()和show()函数,因为只有最小/最大宽度的边栏使flex画布非常高。
我的滑出功能:
$('#close-left').click(function(event){
$('#left').animate({
'min-width': '0px',
'max-width': '0px',
}, 1250).hide();
});
$('#close-right').click(function(event){
$('#right').animate({
'min-width': '0px',
'max-width': '0px',
}, 1250).hide();
});
我做了一个快速提琴,产生了同样的问题:https://jsfiddle.net/89s5tsLr/
更新:我做了第二个小提琴,显示了右侧边栏如何使Flex画布太高而没有调用hide()函数。
https://jsfiddle.net/soq6webp/1/
在此先感谢您的帮助=)
最佳答案
删除.hide()
这就是瞬间使它们消失并弄乱动画的原因。
-
编辑:在我们交换意见后,我得出的结论是,鉴于您的情况,您可能无法做到自己的想法,因此可以做的是:
首先滑出动画
然后显示内容
$('#right').show().animate({ css to change here }, {
duration: 1250,
complete: function() {
// once animation is over, run all the code in this block
}
看看这个JsFiddle
传递给动画函数的第二个对象是options,其中一个是完整的,一旦动画结束,它们就会调用代码。
因此,我们在此匿名函数中为文本设置了动画,以便一旦#right div上的动画结束后即被调用。
除了先隐藏文本,然后再滑动div,我们在关闭按钮上执行相同的操作。
(还要注意CSS中的更改)