You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery中fx对象的step、tick等属性是什么?附示例代码

jQuery $.fx 对象核心属性详解

嘿,我来帮你把$.fx里的这些关键属性掰扯清楚,它们都是jQuery动画系统的核心组成部分:

  • $.fx.step:这是一个钩子对象,用来定义自定义动画属性的处理逻辑。你可以给它添加自定义属性名对应的函数,当动画涉及到这个属性时,jQuery就会调用你定义的函数来处理每帧的更新。比如你想做一个自定义的滚动位置动画,就可以在这里注册专属处理函数。

    举个简单示例:

    $.fx.step.customScroll = function(fx) {
      $(fx.elem).scrollTop(fx.now);
    };
    
  • $.fx.tick:这是动画帧的驱动函数,jQuery的动画循环会反复调用它来更新所有正在运行的动画实例。它负责计算每帧的动画进度、调用对应的step函数,还会管理动画的生命周期——比如动画结束时自动清理相关资源。

  • $.fx.timer:这是一个数组,用来存储当前所有正在运行的动画定时器实例。每个定时器都关联着一组动画任务,tick函数会遍历这个数组来处理所有活跃的动画。当动画停止或完成时,对应的定时器会从这个数组中移除。

  • $.fx.start:这是启动动画循环的触发函数。当第一个动画开始执行时,它会初始化动画定时器(优先用requestAnimationFrame,兼容环境下降级到setTimeout),让tick函数开始周期性执行。如果已经有动画在运行,它不会重复启动循环。

  • $.fx.stop:这个函数用来停止所有当前运行的动画,同时清理timer数组里的所有定时器,直接终止动画循环。调用它之后,所有正在进行的动画都会立即停在当前状态。

  • $.fx.speeds:这是一个速度配置对象,用来定义动画的预设速度值,比如slow、fast对应的毫秒数,默认配置是:

    {
      slow: 600,
      fast: 200,
      _default: 400 // 默认动画时长
    }
    

    你可以修改这个对象自定义全局动画速度,比如$.fx.speeds.slow = 1000,之后所有用slow作为速度参数的动画都会变成1秒时长。

另外你提到的这段代码:

for(fxProperties in $.fx){ document.write(fxProperties + ' ') }

它会遍历$.fx的所有可枚举属性并输出,除了上面说的这些,可能还会输出一些内部辅助属性(比如interval、off——后者用来全局禁用所有动画)。

内容的提问来源于stack exchange,提问作者hamidRezaHeidari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:39:00