Jquery 动画:指定速度,而不是时间

Jquery 动画:指定速度,而不是时间,jquery,Jquery,我有一个可拖动的元素$myElement,其revert:true。现在,指定revertDuration将确定还原动画完成所需的时间 我的问题是,动画的速度会因$myElement从原始位置删除的距离而发生很大变化 有没有一种方法可以指定动画的速度而不是总时间?您需要的是jQuery UI的位置插件,可以在这里找到: 可以获得可拖动元素的偏移量。或者简单地使用: var x = $myElement.offset().left var y = $myElement.offset().top

我有一个可拖动的元素$myElement,其revert:true。现在,指定revertDuration将确定还原动画完成所需的时间

我的问题是,动画的速度会因$myElement从原始位置删除的距离而发生很大变化

有没有一种方法可以指定动画的速度而不是总时间?

您需要的是jQuery UI的位置插件,可以在这里找到:

可以获得可拖动元素的偏移量。或者简单地使用:

var x = $myElement.offset().left
var y = $myElement.offset().top
我想到的解决方案是: 触发可拖动对象的启动事件时保存元素的位置。然后在发生“停止”事件时执行相同操作,并将元素设置回起始偏移。偏移量的差异是一条直线,其长度与返回所需的时间成比例

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 
    }
});
您可以尝试在调用停止事件时设置还原持续时间以避免动画,但我不知道它是否在还原动画之前完成

$( ".selector" ).draggable( "option", "revertDuration", 1000 );