【问题标题】:Pass animation function as parameter将动画函数作为参数传递
【发布时间】:2011-11-28 16:26:44
【问题描述】:

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

但是,我希望能够传入我想要在淡入淡出时做的动画类型。我通过操纵 opactity 属性淡入淡出,但我通过使用 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*/ });

【问题讨论】:

    标签: javascript jquery animation jquery-animate


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 虽然我在调用 showHelp() 函数时如何实际传递 (myAnimation) 参数? IE。 showHelp($('#myDiv, '这里发生了什么?');
    • 如果你想打电话给slideDown然后试试这个showHelp($('#myDiv, 'slideDown');
    猜你喜欢
    • 2021-04-13
    • 2023-04-02
    • 2013-01-27
    • 1970-01-01
    • 2018-10-26
    • 2011-08-06
    • 2012-10-28
    相关资源
    最近更新 更多