繁体   English   中英

jQuery在动画之前获取动画步骤,可能吗?

[英]jQuery get animation steps before animating, possible?

我需要获取动画之前,jquery将循环进行的步骤列表。

例如,如果我有:

$("div#whatever").animate({"left":500}, {
    duration: 1000,
    easing: 'easeOutQuad'
});

我真正想要的是在调用动画之前获得一个“左”位置数组。

喜欢:

var positions = ['0','255','350','390','420','440','455'..... '500'];

请注意,有一种缓和因素需要考虑。 我看过一些使用动画来计算数字的时髦用法,这是我最初的想法,但是所有这些都意味着运行动画,而我做不到。

有人对如何执行此操作有任何想法吗?

创建自己的动画功能?

jQuery.fn.animateLeft = function(prop1, prop2) {
  var left = new Array();

  //add left
  this.each(function() {
    if(this.style && this.style.left) {
      left.push(this.style.left);
    }
    else {
      left.push(0);
    }
  }

  //animate
  this.animate(prop1, prop2);
  return left;
};

其次是

var positions = $("div#whatever").animateLeft ({"left":500}, {
    duration: 1000,
    easing: 'easeOutQuad'
});

您可以编写一个函数来处理positions数组。 动画结束后,将使用数组和保存下一个索引的变量再次调用animation()函数。

该函数可以如下所示:

  var positions = ['0','255','350','390','420','440','500'];
  function animate(positions,i){

  if(typeof i === 'undefined'){
   i = 0; 
  }

  if(i < positions.length){


   $("#hello").animate({"left":positions[i]}, {
    duration: 1000,
    complete: function(){
     i++;
    animate(positions,i);
   }
 }); 
}

}

动画(位置);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM