我在一个表格单元格中有一个图像标记,我想将它移动到 * 另一个 * 表格单元格中,并将该移动设置为动画。
代码看起来像这样…
<td id="cell1"><img src="arrow.png" alt="Arrow"/></td>
<td id="cell2"></td>
我想把“arrow.png”移到“cell 2”,并有某种过渡效果,最好用jQuery。
有什么想法吗
谢谢!
我在一个表格单元格中有一个图像标记,我想将它移动到 * 另一个 * 表格单元格中,并将该移动设置为动画。
代码看起来像这样…
<td id="cell1"><img src="arrow.png" alt="Arrow"/></td>
<td id="cell2"></td>
我想把“arrow.png”移到“cell 2”,并有某种过渡效果,最好用jQuery。
有什么想法吗
谢谢!
9条答案
按热度按时间w9apscun1#
这实际上相当困难,因为您必须将其删除并添加到DOM中,但要保持其位置。我觉得你在找这样的东西。基本上,我们不会在
#cell1
或#cell2
中设置箭头的动画。我们只需要在body
-标签中创建一个新的,并将其动画化。这样我们就不必担心表格单元格的位置,因为我们可以相对于文档进行定位。我想这会给你指明正确的方向。
bvuwiixz2#
@Pim Jager的答案很好,但是如果你有对原始元素的对象引用,它们会中断,因为原始元素被一个克隆替换了
我想出了一个我认为稍微干净一点的解决方案,它只有一个克隆,显示动画,然后消失,把原来的留在新的位置。
用途:
moveAnimate('#ElementToMove', '#newContainer')
35g0bw713#
你需要分两步来做:(1)动画(2)回归。
正如@Ballsacian指出的那样,你可以用.animate()来处理动画。rehoming可以用.html()来完成-对于上面的例子,
当然,您必须使代码复杂化以集成动画。这种方法不会导致选择(我假设您选择的是表行?)激活旧选择和新选择之间的行。那就更复杂了。
kmynzznz4#
我对one of the other answers进行了进一步的扩展,现在您可以将一个对象作为第三个参数传递,该参数在动画期间充当车辆。例如,如果你想把一些从一个移动到另一个,你可能有一个特定的类,它给它的样式。因此,在一个临时车辆内设置动画非常方便,该车辆提供与动画源或目标相同的样式: to another, your likely has a certain class that gives the its styling. So, it would really be handy to animate your inside a temporary vehicle that provides for the same styling as either the source or the target of the animation:
kd3sttzy5#
我尝试了@Davy8的功能,这是相当不错的,但我发现它相当不和谐时,移动的元素抢购了页面在开始,然后在结束。其他页面元素的突然移动打断了原本平滑的动画,但这可能取决于您的页面布局。
所以这是@Davy8函数的修改版本,它也应该平滑地缩小和增加父节点之间的空间。
mccptt676#
如果动画不一定是移动的东西,这个使用淡入和淡出的问题给出了一个简单,干净的答案,没有克隆,仍然很好地传达了运动:
Re-ordering div positions with jQuery?
mnowg1ta7#
对于任何仍然在看这个的人,我发现提供的例子并不完全符合我想要的,他们没有考虑到利润率,所以这里是我的版本:
将一个图元移动到另一个图元之前:
$('.elementToFind').moveElement('.targetElement', 1000);
逐个移动图元:
$('.elementToFind').moveElement('.targetElement', 1000, 'after');
g6ll5ycj8#
如果有人正在寻找一个没有jQuery的版本,这是我的vanilla-javascript版本
ecr0jaav9#
jQuery http://docs.jquery.com/Downloading_jQuery
JQuery Effects http://docs.jquery.com/Effects/animate#paramsoptions
示例