我在使用某些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中的更改)

09-25 21:49