12 lines
297 B
TypeScript
12 lines
297 B
TypeScript
/** Move a node under `document.body` so it escapes overflow/transform ancestors. */
|
|||
|
|
export function portal(node: HTMLElement, target: HTMLElement = document.body) {
|
||
|
|
target.appendChild(node);
|
||
|
|
return {
|
||
|
|
destroy() {
|
||
|
|
if (node.parentNode) {
|
||
|
|
node.parentNode.removeChild(node);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|