【问题标题】:jQuery Set Default Global Easing and QueuejQuery 设置默认全局缓动和队列
【发布时间】:2015-04-10 20:35:11
【问题描述】:

在这个问题set jquery default animation speed

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

【问题讨论】:

    标签: jquery queue default duration easing


    【解决方案1】:

    这变得很容易......

    看起来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';
    

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

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

    如果要使用特殊插件,顺便写成这样:

    $.easing.def = 'linear';
    

    使用swing 就是jswing(我不太喜欢这个术语,与插件不同),但你当然可以稍微重写它(就像我通常做的那样)。

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      相关资源
      最近更新 更多