Наблюдайте за изменением размера элемента dom, используя rxJS - PullRequest
0 голосов
/ 10 марта 2019

Я хочу добавить наблюдателя изменения размера к элементу div в моей dom, чтобы он мог отозвать меня при изменении размера.

Я знаю, что это можно сделать с помощью ResizeObserver , но так как это поддерживается не во всех браузерах, мне пришлось бы добавить для него полифилл.

Я хотел знать, могу ли я сделать то же самое, используя rxJS? Просто наблюдая элемент dom и делая что-то в обратном вызове, когда он изменяет размеры.

1 Ответ

1 голос
/ 10 марта 2019

Игнорирование MutationObserver и хаков анимации, поскольку они не являются частью вопроса ...

Возможно, в будущем.Но в настоящее время это ограничение существует:

... события resize запускаются только (отправляются) в объект окна (document.defaultView).Только обработчики, зарегистрированные в объекте окна, будут получать события.

Источник: https://developer.mozilla.org/en-US/docs/Web/Events/resize

В противном случае:

Вы ищете метод rxJS fromEvent() длядопустимые события HTMLElement (читай: не изменять размер).

Из документов: https://www.learnrxjs.io/operators/creation/fromevent.html

//create observable that emits click events
const source = fromEvent(document.querySelector('#myDiv'), 'click');
const subscribe = source.subscribe(evt => console.log(evt));
...