传递动画函数作为参数

Pass animation function as parameter

本文关键字:参数 函数 动画      更新时间:2023-09-26

我正在编写一个简单的函数来动画div(在本例中称为'helpBox')。这个div在执行时将淡入并向下滑动。

但是,我希望能够传入我想要在渐变旁边做的动画类型。我通过操纵不透明性属性逐渐消失,但我通过使用slideDown()向下滑动。事情是这样的,我希望能够指定一个特定的动画来做的淡出(即可能是一个slideUp()隐藏帮助框再次)。

showHelp: function (helpBox, myAnimation) {
        if (!helpBox.is(':visible')) {
            helpBox.css('opacity', 0)
               .slideDown('slow') //have this function as the parameter (i.e. myAnimation)
               .animate
               (
                    { opacity: 1 },
                    { queue: false, duration: 'slow' }
               );
        }
    }

正如你所看到的,我想用(myAnimation)传递的函数替换硬编码的。slidedown()。我不知道如何调用这个:

showHelp($('#myHelpBox'), function() { /*pass the animation in somehow*/ });

您可以将参数作为字符串(函数名)传递并尝试此

showHelp: function (helpBox, myAnimation) {
        if (!helpBox.is(':visible')) {
            helpBox.css('opacity', 0)[myAnimation]('slow')
               .animate
               (
                    { opacity: 1 },
                    { queue: false, duration: 'slow' }
               );
        }
    }