Jquery ui 在JQuery Sortable中,如何在还原动画开始之前运行函数?
JQuery可排序代码段示例:Jquery ui 在JQuery Sortable中,如何在还原动画开始之前运行函数?,jquery-ui,jquery-ui-sortable,Jquery Ui,Jquery Ui Sortable,JQuery可排序代码段示例: $("#sortable").sortable({ start: function(){ $('#overlay').show('fast'); }); stop: function(){ $('#overlay').hide('fast'); }); revert: true; }); 我希望我的覆盖至少在还原动画开始之前开始隐藏,否则会感觉很慢。有什么想法吗?不幸的是,在执行内部\u clear()函数之前执行还原动画,该
$("#sortable").sortable({
start: function(){ $('#overlay').show('fast'); });
stop: function(){ $('#overlay').hide('fast'); });
revert: true;
});
我希望我的覆盖至少在还原动画开始之前开始隐藏,否则会感觉很慢。有什么想法吗?不幸的是,在执行内部
\u clear()
函数之前执行还原动画,该函数触发事件beforeStop
和stop
一种可能的解决方法是为revert
选项提供一个数字,而不是布尔值。从:
如果设置为true,则该项将通过平滑动画恢复到其新的DOM位置。或者,还可以将其设置为控制动画持续时间(毫秒)的数字。
因此,您可以设置较小的还原动画持续时间,例如150ms,这样看起来不会太慢:
$("#sortable").sortable({
start: function(){ $('#overlay').show('fast'); },
stop: function(){ $('#overlay').hide('fast'); },
revert: 150
});
作为补充,您可以在开始拖动时在助手上定义一个define来替换stop
事件,在该事件中,您将开始隐藏#overlay
元素。释放鼠标按钮后,处理程序将与还原动画一起执行:
$("#sortable").sortable({
start: function(){
// set a one-time "mouseup" event on the helper
$(ui.helper).one('mouseup', function() {
// when mouse button is released, "#overlay" will start hiding
// along with reverting animation
$('#overlay').hide('fast');
});
$('#overlay').show('fast');
},
revert: 150
});
我喜欢较慢的还原动画,但你的鼠标悬停技巧正是我想要的。一旦你看到它,一切似乎都很明显:-)谢谢你多花时间为我做小提琴!!首先是还原动画,这更像是一个技巧,让我在制作小提琴时想到了实际的解决方案。很高兴它有帮助!