jQuery设置默认全局缓动和队列

时间:2015-04-10 20:35:11

标签: jquery queue default duration easing

在这个问题中set jquery default animation speed

有人回答了如何使用$.fx.speeds._default = 400;设置默认动画持续时间,我真的很想知道我如何能够设置默认缓动,以及同一庄园中的默认队列。可以吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

这很容易......

看起来2.2 release发生了变化:

  

使用jQuery.easing._default

设置默认缓动

我会在这里留下原来的答案。我想宽松插件现在可能需要更新。

问题的第一部分 - 默认缓动不像动画速度那样可访问。关于jQuery源代码中的缓动的部分没有默认值 - 它只是在补间原型构造中回退到TPAREN的固定定义。最好的方法可能是为缓动添加一个小扩展( 可全局访问),就像使用special easing方程式一样。 "swing"以下swing被重新定义/复制为curve,创建了扩展程序内的默认选项,swing本身(原型中的后备)用于反映新的变量默认属性:

$.easing['curve'] = $.easing['swing'];

$.extend($.easing, {
  default: 'curve',
  swing: function(x, t, b, c, d) {
    return $.easing[$.easing.default](x, t, b, c, d);
  }
});

现在,在您正在编写的任何功能中,都可以设置默认值:

$.easing.default = 'linear';

在基本级别,当然只有两种类型,linearcurve(以前为swing)。

http://codepen.io/anon/pen/aOOMPV?editors=001

如果你想使用特殊的插件,它将按照以下方式编写:

$.easing.def = 'linear';

然后使用swing jswing(我不喜欢这个术语,不像插件),但你可以稍微改写一下(就像我通常那样)。 / p>

也许你可以详细说明问题的第二部分?很明显,这将符合条件(标准效果队列),但我认为这不是你之后的事情:

$.fx.off = !$.fx.off;

https://api.jquery.com/jQuery.fx.off/