jQuery 设置默认全局缓动和队列
jQuery Set Default Global Easing and Queue
本题set jquery default animation speed
有人用 $.fx.speeds._default = 400;
回答了如何设置默认动画持续时间,我真的很想知道如何在同一个庄园中设置默认缓动和默认队列。可以吗?如果是,怎么做?
这变得容易了...
看起来 2.2 release 发生了变化:
set default easing using jQuery.easing._default
我会在这里留下原来的答案。我想缓动插件现在可能需要更新了。
对于问题的第一部分 - 默认缓动不如动画速度容易访问。 jQuery 源代码中关于缓动的部分没有默认值 - 它只是回退到补间原型构造中 "swing"
的固定定义。最好的方法可能是添加一个小的缓动扩展( 是 全局可访问的),就像 special easing 方程所做的一样。 swing
下方是 redefined/copied 作为 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;
本题set jquery default animation speed
有人用 $.fx.speeds._default = 400;
回答了如何设置默认动画持续时间,我真的很想知道如何在同一个庄园中设置默认缓动和默认队列。可以吗?如果是,怎么做?
这变得容易了...
看起来 2.2 release 发生了变化:
set default easing using jQuery.easing._default
我会在这里留下原来的答案。我想缓动插件现在可能需要更新了。
对于问题的第一部分 - 默认缓动不如动画速度容易访问。 jQuery 源代码中关于缓动的部分没有默认值 - 它只是回退到补间原型构造中 "swing"
的固定定义。最好的方法可能是添加一个小的缓动扩展( 是 全局可访问的),就像 special easing 方程所做的一样。 swing
下方是 redefined/copied 作为 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;