在jQuery中使用手风琴样式菜单时,有没有办法修复像素移动?

在jQuery中使用手风琴样式菜单时,有没有办法修复像素移动?,jquery,jquery-ui-accordion,Jquery,Jquery Ui Accordion,对于一个项目,我需要一些看起来很像jqueryui的accordion特性的功能,但我不使用jqueryui。但是我注意到我的代码的问题也出现在jQueryUIAccordion中。所以我将以它为例 以下是jQuery UI accordion的链接: 如果您注意到,当您单击“section 2”时,“section 4”按钮会向上移动几个像素,当动画完成时,它会向下移动几个像素以恢复其位置。我注意到列表中的元素越多,当激活列表顶部的动画时,“间隙”就越大 起初,我认为这是由结束元素的动画与开始

对于一个项目,我需要一些看起来很像jqueryui的accordion特性的功能,但我不使用jqueryui。但是我注意到我的代码的问题也出现在jQueryUIAccordion中。所以我将以它为例

以下是jQuery UI accordion的链接:

如果您注意到,当您单击“section 2”时,“section 4”按钮会向上移动几个像素,当动画完成时,它会向下移动几个像素以恢复其位置。我注意到列表中的元素越多,当激活列表顶部的动画时,“间隙”就越大

起初,我认为这是由结束元素的动画与开始元素的动画不同时启动引起的。但当我在谷歌上搜索到一个同时启动两个动画的解决方案后,我发现我使用的是正确的方法

然后我想可能是缓和导致了这个问题,所以我在animate()中使用了“linear”作为缓和选项。问题仍然存在

有办法解决这个问题吗?确保前两个元素设置动画时最后一个元素不会移动

我这么问是因为我很确定我的客户会认为这是一个恼人的错误


谢谢你的帮助

这是一个相当好的解决办法,但如果你没有找到更好的解决方案,客户会坚持修复,你可以试试这个。在动画之前,获取所有元素在将要设置动画的元素下方的绝对位置,并将所有元素设置为绝对。动画结束时,恢复“位置”、“顶部”和“左侧”的默认样式值。

这是一种解决方法,但如果您没有找到更好的解决方案,客户端会坚持修复,您可以尝试此方法。在动画之前,获取所有元素在将要设置动画的元素下方的绝对位置,并将所有元素设置为绝对。动画结束时,恢复“位置”、“顶部”和“左侧”的默认样式值