jQuery jQuery.fx.interval Property

Beginner
6 min read
Updated: Oct 2026
5 examples
Live preview

What Is jQuery.fx.interval?

jQuery.fx.interval (since jQuery 1.4.3) is a global Number: milliseconds between animation ticks on the legacy timer path. Default is 13. It is a static property — not $el.something().

Remember
jQuery.fx.interval        // read → usually 13
jQuery.fx.interval = 50;  // write (stop all animations first)

// Ignored when requestAnimationFrame is available
// Deprecated 3.0 · Removed 4.0
NeedUse
Disable all effectsjQuery.fx.off = true
Stop / jump animations.stop() · .finish()
Per-animation timingduration / easing on .animate()
Modern motionCSS transitions · Web Animations · rAF

How to Use jQuery.fx.interval

Only relevant for legacy timer fallback. Always stop animations before changing the value.

  1. Stop every running animation: $(":animated").stop(true, true).
  2. Assign a number of milliseconds: jQuery.fx.interval = 50.
  3. Start new animations — they use the new tick rate on timer-only browsers.
  4. Reset to 13 when done experimenting (again with no animations running).
  5. On modern browsers with rAF, expect little or no visible change.
PieceRequired?Role
Type—Number (milliseconds)
Default—13
Scope—One global value for the whole page
Idle firstYes (to apply)No animation may be running when you change it

Pseudocode

Pseudocode
// Read
current = jQuery.fx.interval   // e.g. 13

// Write (official rule)
if any animation is running:
    stop them all first

jQuery.fx.interval = newMs

// Runtime behavior
if browser supports requestAnimationFrame:
    jQuery uses rAF — interval is ignored
else:
    timer fires every jQuery.fx.interval ms
    each tick advances active tweens

Cheat Sheet

Keep these facts handy when reading legacy jQuery animation code.

TopicDetail
SyntaxjQuery.fx.interval (read / write Number)
SincejQuery 1.4.3
Default13 ms
DeprecatedjQuery 3.0
RemovedjQuery 4.0
rAFWhen supported → interval ignored
Change ruleStop all animations first
SiblingjQuery.fx.off — disable effects

Live Preview

Read or set fx.interval, then run a short .animate(). On modern browsers with rAF, both rates may look the same.

Box

Official rule: stop all animations before changing the interval. rAF may ignore the value.

Result
Ready — click Run to read or animate.

jQuery Examples

Short, copy-ready snippets. Open DevTools, or use Try It Yourself for a live editor.

Example 1 — Read the Default

Inspect the global value before changing anything.

jQuery
$("#read").on("click", function () {
  $("#out").text(
    "jQuery.fx.interval = " + jQuery.fx.interval + " ms" +
    "\ntypeof: " + typeof jQuery.fx.interval
  );
});
Try It Yourself

How It Works

  1. Read. Access the static property — no method call.
  2. Default. On jQuery 1.x–3.x you usually see 13.
  3. Type. It is always a Number (milliseconds).
  4. jQuery 4. The property is removed — feature-detect if you must.

Example 2 — Stop, Set 50, Animate, Reset to 13

Official pattern: idle the fx pipeline, change the interval, then animate.

jQuery
function stopAll() {
  $(":animated").stop(true, true);
}

$("#slow").on("click", function () {
  stopAll();
  jQuery.fx.interval = 50;
  $("#box").css({ marginLeft: 0 }).animate({ marginLeft: 200 }, 2000);
});

$("#default").on("click", function () {
  stopAll();
  jQuery.fx.interval = 13;
  $("#box").css({ marginLeft: 0 }).animate({ marginLeft: 200 }, 2000);
});
Try It Yourself

How It Works

  1. Stop. Clear running tweens so the new interval can apply.
  2. Assign. Higher ms → fewer ticks → larger jumps per tick.
  3. Animate. Same 2000 ms duration; tick density differs on timer path.
  4. Reset. Put 13 back for other demos.

Example 3 — Mid-Run Change Does Nothing Useful

Assigning while an animation is running does not reconfigure the active timer.

jQuery
$("#go").on("click", function () {
  jQuery.fx.interval = 13;
  $("#box").stop(true, true)
    .css({ marginLeft: 0 })
    .animate({ marginLeft: 200 }, 4000);
});

$("#change-mid").on("click", function () {
  // Property updates — active tween keeps the old timer
  jQuery.fx.interval = 50;
  $("#status").text("Set to 50 mid-flight — no reconfigure yet.");
});

$("#apply").on("click", function () {
  $(":animated").stop(true, true);
  jQuery.fx.interval = 50;
  $("#status").text("Stopped all, set 50 — next animate uses it (timer path).");
});
Try It Yourself

How It Works

  1. Start. First animation registers the global timer.
  2. Assign mid-flight. The Number updates; the live timer does not.
  3. Stop. Idle the pipeline so a new timer can use the new value.
  4. Restart. Only then does the change matter (on timer browsers).

Example 4 — Detect requestAnimationFrame

If rAF exists, modern jQuery ignores fx.interval for smooth updates.

jQuery
$("#check").on("click", function () {
  var hasRAF = typeof window.requestAnimationFrame === "function";
  var msg = hasRAF
    ? "rAF supported — jQuery.fx.interval is ignored for ticks"
    : "No rAF — jQuery.fx.interval controls the timer tick rate";

  $("#out").text(
    msg + "\njQuery.fx.interval = " + jQuery.fx.interval
  );
});
Try It Yourself

How It Works

  1. Feature-detect. Check for requestAnimationFrame.
  2. rAF path. Browser frames drive tween updates.
  3. Timer path. Only then does fx.interval matter.
  4. Why deprecated. rAF became universal — the property lost purpose.

Example 5 — Prefer jQuery.fx.off (Not Interval Tuning)

For global control today, disable effects with fx.off. Do not ship new code that tunes fx.interval.

jQuery
// Practical sibling global — still supported
$("#off").on("click", function () {
  jQuery.fx.off = true;
  $("#panel").hide().fadeIn(800); // snaps to end when fx.off is true
  $("#status").text("fx.off = true — effects jump to final state.");
});

$("#on").on("click", function () {
  jQuery.fx.off = false;
  $("#panel").hide().fadeIn(800);
  $("#status").text("fx.off = false — normal animated fade.");
});

// Avoid in new code:
// jQuery.fx.interval = 50;  // deprecated 3.0, removed 4.0
Try It Yourself

How It Works

  1. fx.off. Global switch — duration becomes effectively 0.
  2. Demo. Same fadeIn call; behavior depends on the flag.
  3. Interval. Do not use it to “speed up” or “smooth” modern apps.
  4. Migrate. Plan removal before moving to jQuery 4.0.

Edge Cases & Pitfalls

Common mistakes when touching this legacy global.

rAF

No visible change on modern browsers

With requestAnimationFrame, assigning 50 often does nothing to smoothness.

idle

Change mid-animation is ignored

Stop all tweens first. Mid-flight assignment updates the property only.

global

One value for the whole page

You cannot set a different interval per element or per queue.

removed

Gone in jQuery 4.0

Reading or writing the property will fail after upgrade — migrate away.

not duration

Interval ≠ animation duration

Duration still comes from .animate(…, 2000). Interval only sets tick frequency on the timer path.

Browser Support

jQuery.fx.interval existed from jQuery 1.4.3 through 3.x. It is deprecated in 3.0 and removed in 4.0. On browsers with requestAnimationFrame, changing it has no effect.

✓ Deprecated 3.0 · Removed 4.0

jQuery.fx.interval

Legacy timer tuning only. Modern jQuery prefers requestAnimationFrame. Do not depend on this property for new features.

Legacy Status
Google Chrome All versions · Desktop & Mobile
Full support
Mozilla Firefox All versions · Desktop & Mobile
Full support
Apple Safari All versions · macOS & iOS
Full support
Microsoft Edge All versions · Chromium & Legacy
Full support
Internet Explorer IE 6+ · Legacy environments
Full support
Opera All modern versions
Full support
fx.interval Deprecated

Bottom line: Learn it to understand old codebases. Prefer duration/easing, CSS transitions, Web Animations, or jQuery.fx.off for real control.

Performance Notes

ApproachCostBest for
Lower interval (e.g. 5)More timer wakeupsLegacy-only; usually worse on old CPUs
Higher interval (e.g. 50)Fewer ticksChoppier motion; rarely worth it today
rAF / CSS transitionsBrowser-optimizedNew UI motion

Tuning fx.interval is not a modern performance strategy. Let the browser drive frames (rAF / CSS), or turn effects off with jQuery.fx.off.

Key Takeaways

  • Role: global ms between ticks on the legacy timer path (default 13).
  • Status: deprecated in 3.0, removed in 4.0 — ignored when rAF exists.
  • Rule: stop all animations before changing the value.
  • Today: use duration/easing, CSS, or jQuery.fx.off — not interval tuning.

One line: jQuery.fx.interval was the legacy animation metronome — learn it for old code; do not build new features on it.

Frequently Asked Questions

jQuery.fx.interval is a global Number: the rate in milliseconds at which jQuery’s animation engine fires update ticks on the legacy timer path. It is a static property on jQuery.fx — not a method on a jQuery collection.
The default is 13 milliseconds — roughly 77 ticks per second when the timer fallback drives animations.
Yes. It was deprecated in jQuery 3.0 and removed in jQuery 4.0. Prefer requestAnimationFrame-driven animation (what modern jQuery already uses) or CSS transitions / the Web Animations API for new work.
No. When requestAnimationFrame is available, jQuery syncs updates to the browser frame loop and ignores fx.interval. The property only mattered on legacy browsers without rAF.
jQuery uses one global interval. Stop every running animation first (for example $(":animated").stop(true, true)), then change the value. A mid-flight assignment does not reconfigure the active timer.
Yes. One jQuery.fx.interval applies to every timer-based jQuery animation on the page. Use duration, easing, CSS transitions, or jQuery.fx.off for other kinds of control.

Next: jQuery.fx.off

Turn all jQuery animations off globally — the practical sibling to fx.interval.

jQuery.fx.off tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

10 people found this page helpful