jQuery .animate()'toggle'

时间:2012-04-30 15:59:01

标签: jquery menu jquery-animate

我一直在玩一个jQuery导航菜单,为了示例,我做了一个模拟它: http://jsfiddle.net/DerFlatulator6/3jYhh/1/

我遇到了一个问题,它几乎与我希望它完全相反。我的悬停事件代码是这样的:

$(this)
    .addClass('selected')
    .children('ul')
        .animate({'height': 'toggle'}, 300);

经过一些修补,我想出了这个

$(this)
    .addClass('selected')
    .children('ul')
        .css('height', 'toggle')
        .animate({'height': 'toggle'}, 300);

哪个有效,但我不明白为什么!有人能够准确解释发生了什么吗?

一个侧面问题......你会注意到小提琴有一个3级菜单,其中代码是垂直和水平下拉隔离的,是否有很好的方法来编写一个函数来覆盖它们,或者应该我原样保留它?

1 个答案:

答案 0 :(得分:2)

animate({'height': 'toggle'}, 300)类似于从当前到0的动画高度,如果高度更多为0,或者如果当前为0则从0到先前的动画。

来自文档http://api.jquery.com/animate/

  

除了数值之外,每个属性都可以使用字符串   'show','hide'和'toggle'。这些快捷方式允许自定义隐藏   并显示考虑到的显示类型的动画   元件。