【问题标题】:Animation: specify speed, not time动画:指定速度,而不是时间
【发布时间】:2011-09-24 20:21:59
【问题描述】:

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

我的问题是,动画的速度会根据$myElement 从原始位置下降的距离而有很大差异。

有没有办法指定动画的速度(相对于总时间)?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您需要的是position jQuery UI 插件,可在此处找到:http://jqueryui.com/demos/position/

    您可以获得可拖动元素的偏移量。或者干脆使用:

    var x = $myElement.offset().left
    var y = $myElement.offset().top
    

    我想到的解决方案: 触发可拖动对象的start 事件时保存元素的位置。然后在 'stop' 事件发生并且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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-22
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多