【发布时间】:2014-01-31 10:59:56
【问题描述】:
TLDR
我希望能够在帮助器被删除后通过显示原始项目移动到它的新位置而其他项目移动来为我的 jQuery-UI 排序设置动画。由于某些需要固定在适当位置的可分类物,这使情况变得复杂。
项目:
该项目涉及在选项卡式界面中动态生成的 jQuery-UI portlet。选项卡和 portlet 内容本身是通过对已建立的 Web 服务的异步 AJAX 请求生成的。每个选项卡中都有数量不定的 portlet,并使用自定义滚动条进行内容显示。我已经使用类和在堆栈溢出的其他地方找到的解决方案(稍作修改)实现了某些 portlet 的修复。当前功能的一个非常基本的实现可以在这里看到:http://jsfiddle.net/99yVq/。
问题
在实现 portlet 修复之前,我在通过显示和隐藏占位符元素进行排序时制作动画:
$( ".content" ).sortable({
start: function(e, ui){
$(ui.placeholder).hide(300);
},
change: function (e,ui){
$(ui.placeholder).hide().show(300);
}
});
可在此处查看:http://jsfiddle.net/BWNE2/。这工作得相当好,但我觉得动画很不稳定,显然需要一些戳才能让它与上面的 portlet 修复解决方案一起工作(因为它依赖于帮助程序创建来确定固定位置)。这不是我正在寻找的解决方案。
更新
是否将两者结合起来(没有真正需要的警告)并且组合功能可在此处获得:http://jsfiddle.net/BWNE2/1/。动画可以工作,但您可以看到 .fixed portlet 与其他 portlet 一起动画,然后恢复到原来的位置。
更新结束
问题
我的理想方案是让用户将 portlet 助手(我相信它是在拖动过程中使用的原始项目的克隆)从其原始位置拖动到新位置。在删除portlet 时,将从旧位置动画到新位置。排序过程中的当前移动应该保持给最终用户反馈,但最终的动画应该在助手下降之后发生。
有人对如何实现这一目标有任何想法或示例吗?
如果我的问题格式不充分,或者您需要更多信息,请告诉我。
提前致谢。
编辑
您可以在此处看到:http://jsfiddle.net/BWNE2/2/ 将其固定在位置 3(顶部的右上角)时,动画效果更加不足。排序时它通常不在正确的位置,尽管它确实在排序结束时恢复到正确的位置。
【问题讨论】:
-
没有想法或者我需要澄清问题吗?
-
所以,是的,我不确定我是否完全理解你的意图。所以即使当你拖动它时,当你放下 portlet 时它会动画(随机移动 portlet),你希望它显示出来回到它开始的地方,然后动画到它被放下的地方?
-
老实说,我不明白问题出在哪里。你能用一两句话具体说明你的问题吗?为什么jsfiddle.net/BWNE2 不是一个好的解决方案?似乎工作正常。 :)
-
作为一种解决方案,它可以工作,但这不是我想要的功能。正如@Trevor 所说,我希望portlet 在助手被删除后从它的起始位置平滑地动画到它的新位置。我现在正试图找到一个例子。
标签: javascript jquery jquery-ui jquery-ui-sortable