javascript - 使用 zepto,是否可以对动画进行排队?

标签 javascript zepto css-animations

zepto.js有一个动画元素的 API,它允许包含一个“完成”回调函数。 animate source

但是jquery type queue API似乎不被支持。

我想知道是否有使用 zepto 创建动画序列的内置方法,还是我应该从某个地方捏一个队列函数?

此外,“完成”回调不传递任何参数,因此很难知道您处于动画序列的哪个阶段 - 也许有解决方法?

最佳答案

我不确定你是否会觉得它有帮助,但我写了一个小插件来排队 zepto 动画:

$.fn.queueAnim = function (steps, callback) {
  var $selector = this;

  function iterator(step) {
    step.push(iterate);
    $selector.animate.apply($selector, step); 
  }

  function iterate() {
    if (!steps.length) return callback && callback();

    var step = steps.shift();
    iterator(step);
  }

  iterate();
}

示例用法:

$('div').queueAnim([
  [ { 'rotate': '15deg' }, 200, 'ease-out' ],
  [ { 'rotate': '-13deg' }, 300, 'ease-out' ],
  [ { 'rotate': '10deg' }, 400, 'ease-out' ],
  [ { 'rotate': '0deg' }, 500, 'ease-out' ]
], function () {
  // all done
});

关于javascript - 使用 zepto,是否可以对动画进行排队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963170/

相关文章:

javascript - 当图片到达某个位置时如何重置图片的位置?

javascript - 计算发票

javascript - 在 amp-lightbox 中创建 amp-form

javascript - 在 Zepto 动画函数中使用变量

带关键帧的 CSS3 动画

javascript - (脚本 438 错误)我的 jQuery 插件在 Internet Explorer 中无法工作

jquery - :selected in Zepto.js

css - 是否有一个 float div 的 CSS 动画在窗口调整大小时环绕?

html - CSS 技能栏动画

javascript - 从 jQuery 迁移到 Zepto