【发布时间】:2015-04-10 20:35:11
【问题描述】:
在这个问题set jquery default animation speed
有人用$.fx.speeds._default = 400; 回答了如何设置默认动画持续时间,我真的很想知道如何在同一个庄园中设置默认缓动和默认队列。可以做到吗?如果有,怎么做?
【问题讨论】:
标签: jquery queue default duration easing
在这个问题set jquery default animation speed
有人用$.fx.speeds._default = 400; 回答了如何设置默认动画持续时间,我真的很想知道如何在同一个庄园中设置默认缓动和默认队列。可以做到吗?如果有,怎么做?
【问题讨论】:
标签: jquery queue default duration easing
这变得很容易......
看起来2.2 release 发生了变化:
使用 jQuery.easing._default 设置默认缓动
我将在此处留下原始答案。我猜缓动插件现在可能需要更新了。
对于问题的第一部分 - 默认缓动不像动画速度那样易于访问。 jQuery 源代码中关于缓动的部分没有默认值——它只是依赖于补间原型构造中"swing" 的固定定义。最好的方法可能是为缓动添加一个小扩展( 可以全局访问),就像special easing 方程一样。下面的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';
在基本级别当然只有两种类型可用,linear 和 curve(以前的 swing)。
http://codepen.io/anon/pen/aOOMPV?editors=001
如果要使用特殊插件,顺便写成这样:
$.easing.def = 'linear';
使用swing 就是jswing(我不太喜欢这个术语,与插件不同),但你当然可以稍微重写它(就像我通常做的那样)。
也许您可以详细说明问题的第二部分?很明显,这符合条件(标准效果队列),但我认为这不是你想要的:
$.fx.off = !$.fx.off;
【讨论】: