我一直在玩一个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级菜单,其中代码是垂直和水平下拉隔离的,是否有很好的方法来编写一个函数来覆盖它们,或者应该我原样保留它?
答案 0 :(得分:2)
animate({'height': 'toggle'}, 300)
类似于从当前到0的动画高度,如果高度更多为0,或者如果当前为0则从0到先前的动画。
来自文档http://api.jquery.com/animate/
除了数值之外,每个属性都可以使用字符串 'show','hide'和'toggle'。这些快捷方式允许自定义隐藏 并显示考虑到的显示类型的动画 元件。