我编写了一个执行某些切换的插件,我需要一种方法来检查可用的缓动方法。我希望在可用时支持jQuery UI easing methods。看起来这些都在custom builder的效果包中,但由于可以取消选中,因此检查jQuery UI是否可用似乎不够。我想具体检查缓和方法是否可用。
答案 0 :(得分:7)
你可以这样检查:
if ( $.easing && $.easing.easeInOutQuad ) {
// Use easing function easeInOutQuad
} else {
// Use some other stuff
}
请参阅UI核心中的597
行( http://jqueryui.com/ui/jquery.effects.core.js )。
链接它已损坏但仍应有效。
答案 1 :(得分:1)
以下是我认为我将要使用的内容:
function verifyEasing(input) {
return 'linear' === input || ($.easing && $.easing.hasOwnProperty(input)) ? input : false;
}
如果输入为'linear'
或者如果它可以从jQuery UI获得,那么它将返回它。否则它将返回false
。如果您将false
作为.toggle()
缓动值传递,那么我会像b / c那样做,然后默认为'swing'
- 因此无需专门检查swing
。像这样:
$('.target').toggle( 800, verifyEasing(input) );
我想如果你想检查自定义缓动函数那么你可以在布尔值中添加$.isFunction
检查:
'linear' === input || ($.easing && $.easing.hasOwnProperty(input)) || $.isFunction(input)