我正在尝试slideToggle()
在包含文本的 DIV 上做一个简单的 jQuery,并且发现动画非常缓慢(似乎犹豫不决),因为slideDown
动画接近滑动 DIV 的底部。
可以在此处找到代码和示例。我已经在多台计算机和流行浏览器的所有现代版本上进行了测试,它们的行为方式都相同。奇怪的是,当我在jsFiddle中运行完全相同的页面时,它很流畅。
有任何想法吗?
更新
部分原因似乎是,就像其他人建议的那样,jQuery 在动画运行之前不知道滑动 DIV 的高度。由于滑动 DIV 中的内容是动态的,要么很短,要么有点长,我也不会。所以,我尝试在使用 jQuery 隐藏它之前抓取 DIV 的高度,然后相应地设置 CSS 高度。制作更流畅的动画,但可能不是最佳解决方案 -演示
更新 2
问题似乎是由于初始示例中的几个 CSS 问题造成的。首先,DIV 太多。其次,滑动 DIV 设置了填充 - 不能很好地与 一起使用toggleSlide
,最后,滑动 DIV 位于还包含#control-container
(按钮)DIV 的容器 DIV 中。
将 DIV 减少到两个(滑动元素的外部 DIV 和滑动 DIV 本身)并且不设置外部滑动 DIV 填充似乎可以解决问题 -最后一个示例。