hide
hide()
provides data to hide the floating element in
applicable situations, usually when it's not within the same
clipping context as the reference element.
In the above example, the floating element turns red once it has
escaped
the reference element's clipping context.
Once the reference element is hidden, it hides itself.
Usage
import {computePosition, hide} from '@floating-ui/dom';
computePosition(referenceEl, floatingEl, {
middleware: [hide()],
}).then(({middlewareData}) => {
const {referenceHidden} = middlewareData.hide;
Object.assign(floatingEl.style, {
visibility: referenceHidden ? 'hidden' : 'visible',
});
});
Order
hide()
should generally be placed at the end of your
middleware array.
Options
These are the options you can pass to hide()
.
interface Options extends DetectOverflowOptions {
strategy?: 'referenceHidden' | 'escaped';
}
strategy
default: 'referenceHidden'
Specifies the type of hiding strategy to use.
hide({strategy: 'escaped'}); // 'referenceHidden' by default
If you'd like to use multiple strategies, call hide()
multiple times in your middleware array with different options.
...detectOverflowOptions
All of detectOverflow's options can be passed. For instance:
hide({padding: 5}); // 0 by default
Data
interface Data {
referenceHidden?: boolean;
referenceHiddenOffsets?: SideObject;
escaped?: boolean;
escapedOffsets?: SideObject;
}
Depending on the strategy used, these options may exist in the data object.
referenceHidden
Determines whether the reference element is currently not visible on screen for the user.
referenceHiddenOffsets
A side object containing overflow offsets.
escaped
Determines whether the floating element has "escaped" the reference's clipping context and appears fully detached from it.
escapedOffsets
A side object containing overflow offsets.