.fadeOut() (since jQuery 1.0) hides matched elements by fading them to transparent (opacity 0). When opacity reaches 0, display is set to none so the element leaves the layout. Returns the jQuery object for chaining.
Remember
$("#book").fadeOut(); // default 400 ms
$("#book").fadeOut("slow", function () { /* done */ });
$("#panel").fadeOut(600, "linear");
// Fades opacity → 0 · then display: none
// Unlike .fadeTo() — that does not hide
Select a visible element, call .fadeOut() from a click (or other) handler, optionally pass duration, easing, or a callback.
Select the target ($("#book")).
Ensure it is visible (already shown, or call .show() first).
On a user action, call .fadeOut() (optional duration / easing / complete).
jQuery animates opacity to 0, then sets display: none.
For spam clicks, chain .stop(true, true) before .fadeOut().
Piece
Required?
Role
Matched set
Yes
Visible elements to hide
duration
No
Default 400; also "fast" (200) / "slow" (600)
easing
No
Default "swing"; built-in also "linear" (since 1.4.3)
complete
No
Runs once per matched element when its fade ends
Return value
—
jQuery object (chainable)
Pseudocode
Pseudocode
call $(elements).fadeOut(duration?, easing?, complete?)
for each matched element:
if element is already hidden:
skip (no unnecessary DOM work)
else:
animate opacity → 0 over duration
set display: none
if complete was provided:
call complete once for this element
(this = the DOM element)
return the jQuery set for chaining
Reference
Cheat Sheet
Keep these facts handy while building fade exits.
Topic
Detail
Syntax
.fadeOut([duration] [, easing] [, complete])
Options form
.fadeOut({ duration, easing, complete, … })
Since
jQuery 1.0 · easing arg since 1.4.3
Default duration
400 ms
Presets
"fast" = 200 · "slow" = 600
Easing
swing (default) · linear
After fade
display: none (leaves layout)
Callback
Once per element · use .promise() for “all done”
Rapid clicks
$el.stop(true, true).fadeOut()
Try it
Live Preview
Click Run to fadeOut the sample panel. Change duration with the chips.
This paragraph fades out with .fadeOut().
Reset shows the panel again so you can fade it out. Each Run starts from visible.
Result
Ready — click Run to fadeOut.
Code
jQuery Examples
Short, copy-ready snippets. Open DevTools, or use Try It Yourself for a live editor.
Example 1 — Basic Slow Hide
From the jQuery docs: fade out a visible element on click with a complete callback.
jQuery
$("#clickme").on("click", function () {
$("#book").fadeOut("slow", function () {
// Animation complete.
});
});
.fadeOut() has been part of jQuery since 1.0 (easing argument since 1.4.3). It works in every browser that runs your loaded jQuery version.
✓ Stable · jQuery 1.0+
jQuery .fadeOut()
Supported across jQuery 1.x, 2.x, and 3.x. Prefer a current jQuery 3.x build. Call it on visible elements for a clear exit.
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
.fadeOut()Universal
Bottom line: Safe for everyday UI dismissals. Guard rapid clicks with .stop(true, true), and respect jQuery.fx.off for reduced motion.
Analysis
Performance Notes
Approach
Cost
Best for
One element fadeOut
Cheap
Toasts, panels, alerts
Many elements at once
More paint work
Keep sets small; prefer one container
Queued spam clicks
Wasted frames
Always .stop(true, true) on busy buttons
Opacity fades are inexpensive for a few elements. Cost climbs with large sets or stacked queues — stop before fade, and prefer fading one wrapper over dozens of children.
Remember
Key Takeaways
Role: fade to transparent + display: none — since jQuery 1.0.
Guard:.stop(true, true) before fade on busy buttons.
One line:.fadeOut() hides a visible element by fading opacity to 0 — the smooth counterpart to .hide().
Frequently Asked Questions
.fadeOut() hides matched elements by fading them to transparent. It animates opacity toward 0, then sets display to none so the element no longer affects page layout. Use it for a smooth exit instead of an instant .hide().
1) .fadeOut([duration] [, complete]) — optional duration and completion callback. 2) .fadeOut(options) — an options object with duration, easing, queue, step, progress, and Promise-style callbacks. 3) .fadeOut([duration] [, easing] [, complete]) — positional easing since jQuery 1.4.3.
.hide() removes elements instantly with no transition. .fadeIn() is the opposite reveal — unhides and fades to full opacity. .fadeTo() animates to a target opacity but does not hide. .fadeOut() both fades to transparent and sets display:none.
Duration is in milliseconds. Default is 400 ms when omitted. The strings "fast" (200 ms) and "slow" (600 ms) map to preset speeds, the same as other jQuery effect methods.
Once per matched element when that element’s fade finishes — not once for the whole set. Inside the callback, this is the DOM element. Use .promise().done() when you need a single callback after every element completes.
No. To avoid unnecessary DOM work, .fadeOut() will not hide an element that is already considered hidden (typically display:none). Calling it on hidden content produces little or no visible effect.