如何在重新排序表行时将移动的其他行动画化

How to animate other rows moving out of the way when reordering table rows?

本文关键字:移动 动画 其他 新排序 排序      更新时间:2023-09-26

我的web应用程序中的一些表可以通过拖放重新排序,使用以下代码:

http://isocra.com/2007/07/dragging-and-dropping-table-rows-in-javascript/

它使用标准的JavaScript insertBefore方法将表移动到不同的DOM位置,如下所示:

dragObject.parentNode.insertBefore(dragObject, currentRow.nextSibling);

效果很好,但动作似乎很突然。我想更新这一点,以便当我拖动一个表行,其他行动画到他们的新位置。当你在可编辑的表格中拖动表格行时,iOS也会产生同样的效果。

我认为这可能是jQuery的工作,所以我调整了代码,将标准的insertBefore方法更改为jQuery的insertBefore函数,我认为我可以然后动画:

jQuery(".dragging").insertBefore(currentRow.nextSibling)

但是在尝试了不同的动画选项之后,我意识到它们只能动画正在移动的行,而不是周围的其他行。

有没有人看到这个解决方案-基本上模拟iOS表在HTML中重新排序?我更喜欢与我现有的表行一起工作的解决方案,这样我就不必完全改变我的代码,但如果有必要,我会考虑更改为基于div的标记。

为什么不使用jQuery排序?