ResizeObserver
A helper class which instances allow performing custom actions when native DOM elements are resized.
const editableElement = editor.editing.view.getDomRoot();
const observer = new ResizeObserver( editableElement, entry => {
console.log( 'The editable element has been resized in DOM.' );
console.log( entry.target ); // -> editableElement
console.log( entry.contentRect.width ); // -> e.g. '423px'
} );
It uses the native DOM resize observer under the hood.
Properties
-
element : Element
readonlymodule:utils/dom/resizeobserver~ResizeObserver#element
The element observed by this observer.
-
_callback : ( entry: ResizeObserverEntry ) => void
privatereadonlymodule:utils/dom/resizeobserver~ResizeObserver#_callback
The callback executed each time
_element
is resized. -
_element : Element
privatereadonlymodule:utils/dom/resizeobserver~ResizeObserver#_element
The element observed by this observer.
Static properties
-
_elementCallbacks : null | Map<Element, Set<( entry: ResizeObserverEntry ) => void>>
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._elementCallbacks
A mapping of native DOM elements and their callbacks shared across all
ResizeObserver
instances. -
_observerInstance : null | ResizeObserver
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._observerInstance
The single native observer instance shared across all
ResizeObserver
instances.
Methods
-
constructor( element, callback )
module:utils/dom/resizeobserver~ResizeObserver#constructor
Creates an instance of the
ResizeObserver
class.Parameters
element : Element
A DOM element that is to be observed for resizing. Note that the element must be visible (i.e. not detached from DOM) for the observer to work.
callback : ( entry: ResizeObserverEntry ) => void
A function called when the observed element was resized. It passes the
ResizeObserverEntry
object with information about the resize event.
-
destroy() → void
module:utils/dom/resizeobserver~ResizeObserver#destroy
Static methods
-
_addElementCallback( element, callback ) → void
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._addElementCallback
Registers a new resize callback for the DOM element.
Parameters
element : Element
callback : ( entry: ResizeObserverEntry ) => void
Returns
void
-
_createObserver() → void
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._createObserver
Creates the single native observer shared across all
ResizeObserver
instances.Returns
void
-
_deleteElementCallback( element, callback ) → void
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._deleteElementCallback
Removes a resize callback from the DOM element. If no callbacks are left for the element, it removes the element from the native observer.
Parameters
element : Element
callback : ( entry: ResizeObserverEntry ) => void
Returns
void
-
_getElementCallbacks( element ) → undefined | null | Set<( entry: ResizeObserverEntry ) => void>
privatestaticmodule:utils/dom/resizeobserver~ResizeObserver._getElementCallbacks
Returns are registered resize callbacks for the DOM element.
Parameters
element : Element
Returns
undefined | null | Set<( entry: ResizeObserverEntry ) => void>