我有一个带有$myElement
的可拖动元素revert: true
。现在指定revertDuration
将确定还原动画完成所需的时间。
我的问题是动画的速度会有很大差异,具体取决于从原始位置放置$myElement
的距离。
有没有办法指定动画的速度(而不是总时间)?
答案 0 :(得分:0)
您需要的是position
jQuery用户界面插件:http://jqueryui.com/demos/position/
您可以获得可拖动元素的偏移量。或者只是使用:
var x = $myElement.offset().left
var y = $myElement.offset().top
我想到的解决方案:
触发可拖动对象的start
事件时保存元素的位置。然后在“停止”事件发生时执行相同操作并将元素animate
返回到起始偏移量。偏移量的差异是一条线,其长度将与返回所需的时间成比例。
var x,y;
$myElement.draggable({
start: function(event, ui) {
x = $myElement.offset().left;
y = $myElement.offset().top;
},
stop: function(event, ui) {
// count the length of the line from starting point
// and trigger back animation
}
});
您可以尝试在调用stop
事件时设置恢复持续时间以避免animate
,但我不知道它是否在恢复动画之前完成。
$( ".selector" ).draggable( "option", "revertDuration", 1000 );