jQuery.fx.off (since jQuery 1.3) is a global Boolean that turns every jQuery animation on or off. When true, effect methods jump to the final state immediately. When false (default), durations and easing run normally.
Remember
jQuery.fx.off // read → true or false
jQuery.fx.off = true; // disable all effects (instant end)
jQuery.fx.off = false; // re-enable normal durations
// $.fx.off is the same property
// Callbacks still run — only the tween is skipped
Assign the Boolean, then call any effect method — it honors the flag at start time.
Optionally read jQuery.fx.off to see the current state.
Set true to disable (or false to enable).
Call .fadeIn(), .animate(), .toggle("slow"), etc.
With true, the element snaps to the end CSS; callbacks still fire.
Set false anytime to restore smooth motion for later calls.
Piece
Required?
Role
Type
—
Boolean
Default
—
false (animations on)
Scope
—
One global value for the whole page
Alias
—
$.fx.off === jQuery.fx.off
Pseudocode
Pseudocode
// Read / write
disabled = jQuery.fx.off
jQuery.fx.off = true | false
// When any effect method runs:
if jQuery.fx.off is true:
apply end CSS immediately
run complete / queue next (no tween frames)
else:
animate over the requested duration
// Official toggle pattern:
$.fx.off = !$.fx.off
$("div").toggle("slow")
Reference
Cheat Sheet
Keep these facts handy when disabling or restoring jQuery effects.
Topic
Detail
Syntax
jQuery.fx.off (read / write Boolean)
Since
jQuery 1.3
Default
false
Status
Stable (not deprecated)
true
All effects → instant end state
false
Normal durations / easing
Callbacks
Still run when off
Use cases
Low CPU · a11y · tests
Try it
Live Preview
Toggle fx.off, then run a slow fade. Watch snap vs smooth.
Panel — fade me after toggling fx.off.
Official pattern: flip the Boolean, then call an effect. true snaps; false animates.
Result
Ready — toggle fx.off, then fade.
Code
jQuery Examples
Short, copy-ready snippets. Open DevTools, or use Try It Yourself for a live editor.
Example 1 — Official Toggle Demo
Flip $.fx.off, then run .toggle("slow") — snap vs animate.
jQuery
var toggleFx = function () {
$.fx.off = !$.fx.off;
$("#status").text("jQuery.fx.off = " + $.fx.off);
};
toggleFx();
$("#toggle-fx").on("click", toggleFx);
$("#run").on("click", function () {
$(".box").toggle("slow");
});
Disable → fx.off = true
Enable → fx.off = false, then 1200 ms animate
Box slides and fades in smoothly again
How It Works
Disable. Future effects snap until you change the flag.
Enable. Assign false before starting a new tween.
Animate. Normal duration and easing apply again.
Stop first. Optional .stop(true, true) clears any leftover queue.
Edge Cases & Pitfalls
Watch these when muting jQuery motion globally.
global
Affects every jQuery effect on the page
There is no per-element fx.off. Use duration 0 for a single call instead.
callbacks
Complete still fires when off
Do not assume “no animation” means “no callback.” Logic after complete still runs.
CSS
Does not disable CSS transitions
Only jQuery’s fx engine is muted. Handle stylesheet motion separately for full reduced-motion support.
vs interval
Not the same as fx.interval
fx.off removes motion. fx.interval only tuned legacy tick rate (deprecated).
timing
Checked when the effect starts
Changing fx.off mid-tween does not rewrite an animation already in progress — set it before the call.
Compatibility
Browser Support
jQuery.fx.off has been part of jQuery since 1.3. It works in every browser that runs your loaded jQuery version — no separate browser feature flag.
✓ Stable · jQuery 1.3+
jQuery.fx.off
Supported across jQuery 1.3+, 2.x, and 3.x. Prefer a current jQuery 3.x build. Still the recommended global switch for disabling effects.
100%With jQuery
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
fx.offUniversal
Bottom line: Safe for a11y and low-resource modes. Pair with prefers-reduced-motion, and remember it only controls jQuery effects — not CSS transitions.
Analysis
Performance Notes
Approach
Cost
Best for
fx.off = true
Cheapest
Low-resource devices, a11y, tests
Normal animations
Timer / rAF work
Default UX when motion is fine
Per-call duration: 0
Cheap, local
One effect without muting the page
Turning effects off removes tween work entirely. That is exactly why the docs recommend it on constrained devices — and why tests often set it to skip waiting for animations.
Remember
Key Takeaways
Role: global on/off switch for all jQuery animations (since 1.3).
Behavior:true → instant end CSS; callbacks still run.
Use for: reduced motion, low CPU, and skipping waits in tests.
One line:jQuery.fx.off mutes every jQuery effect on the page — set true to snap, false to animate again.
Frequently Asked Questions
When set to true, jQuery.fx.off globally disables all jQuery animations. Effect methods such as .animate(), .fadeIn(), and .slideToggle() jump elements to their final state immediately instead of tweening. It is a static Boolean on jQuery.fx — not a method on a collection.
It was added in jQuery 1.3 and remains a stable global switch in current releases — unlike jQuery.fx.interval, which was deprecated in 3.0 and removed in 4.0.
A Boolean. true means all jQuery effects are disabled globally; false (the default) means durations and easing run normally.
Yes. Queue progression and complete callbacks still fire. Only the visible tween is skipped — the end CSS is applied in one step.
Assign jQuery.fx.off = false (or $.fx.off = false). Every subsequent effect uses normal durations again. You can toggle it at runtime.
Official use cases: low-resource devices where animation timers cost CPU, and users with accessibility / motion sensitivity. Pair with prefers-reduced-motion, or use it in tests to skip animated waits.