Resize Observer
The Resize Observer component offers a thin, declarative interface to the ResizeObserver API.
The resize observer will report changes to the dimensions of the elements it wraps through the pc-resize event. When emitted, a collection of ResizeObserverEntry objects will be attached to event.detail that contains the target element and information about its dimensions.
<div class="resize-observer-overview">
<pc-resize-observer>
<span>Resize this box and watch the console ↘️</span>
</pc-resize-observer>
</div>
<script>
const container = document.querySelector(
".resize-observer-overview",
);
const resizeObserver =
container.querySelector("pc-resize-observer");
resizeObserver.addEventListener("pc-resize", (event) => {
console.log(event.detail);
});
</script>
<style>
.resize-observer-overview {
display: flex;
align-items: center;
justify-content: center;
padding: var(--pc-spacing-xxxl) var(--pc-spacing-xxl);
border: 2px solid var(--pc-input-border-color);
border-radius: var(--pc-border-radius-l);
overflow: auto;
}
</style> Properties
| Name | Description | Reflects | Default |
|---|---|---|---|
disabled | Disables the resize observer. boolean | false | |
updateComplete | A read‐only promise that resolves when the component has finished updating. | - |
Learn more about attributes and properties.
Slots
| Name | Description |
|---|---|
| (default) | One or more elements to watch for resizing. |
Learn more about using slots.
Events
| Name | Description | Event detail |
|---|---|---|
pc-resize | Emitted when the element is resized. | { entries: ResizeObserverEntry[] } |
Learn more about events.
Importing
If you’re using the autoloader or the standard loader, you can ignore this section. If you’re cherry picking, you can use any of the following snippets to import this component.
To import this component from the CDN with a script tag, copy this snippet and paste it in your HTML.
<script type="module" src="https://cdn.jsdelivr.net/npm/placer-toolkit@0.5.1/dist/components/resize-observer/resize-observer.js"></script> To import this component from the CDN using a JavaScript import, copy this snippet and paste it in your JavaScript:
import "https://cdn.jsdelivr.net/npm/placer-toolkit@0.5.1/dist/components/resize-observer/resize-observer.js"; To import this component with a bundler using a JavaScript import, copy this snippet and paste it in your JavaScript:
import "placer-toolkit/dist/components/resize-observer/resize-observer.js";