По сути, я хочу добиться прослушивания события mousemove, прикрепленного к документу, и, когда я наведу указатель мыши на элемент, я проверяю, не переполнен ли он текстом, и, если это так, обрезаю его и добавляю атрибут title к целевому элементу с полным текст, так что когда пользователь наводит на него курсор, браузер отображает всплывающую подсказку по умолчанию с этим текстом.
Этот лог c отлично работает сам по себе, но имеет большой недостаток. Это убивает производительность моего приложения, потому что я использую внутри него getComputedStyle ().
Чтобы решить эту проблему, я попытался использовать Rx JS debounce, и он прекрасно работает. Но если пользователь быстро перемещает мышь, а затем останавливается, так что для этого элемента генерируется только 1 событие, тогда подсказка добавляется в DOM, но не отображается.
Как я понимаю, что происходит с точки зрения браузера, все работает нормально, потому что когда пользователь наведен на элемент, заголовка еще не было, и как только он был добавлен, пользователь больше не перемещал мышь, поэтому всплывающая подсказка не отображается.
fromEvent(document, 'mouseenter')
.pipe(
debounceTime(20),
tap(($event: Event) => {
this.addTooltip($event);
})
)
.subscribe();
Вопрос в том, знает ли кто-нибудь, как обойти эту проблему