@mrister_chelovek

Как отловить событие появления скрола у поля textarea?

Подскажите пожалуйста, как отловить событие появления скрола у поля textarea?
Допустим, есть поле textarea, у него overflow: auto, в какой-то момент времени (когда заполняется поле textarea) появляется скролл, при его появлении мне нужно чтобы сработал нужный метод.
Пример (вымышленный), появился скрол в textarea, к тегу textarea добавилось свойство padding: 10px;
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
@Directive({
  selector: 'textarea[appText]'
})
export class TextDirective {
  @Output() public hasScrollBar = new EventEmitter<boolean>();

  constructor(private readonly elRef: ElementRef<HTMLTextAreaElement>) {}

  @HostListener('change')
  @HostListener('input')
  public changes() {
    const elem = this.elRef.nativeElement;
    this.hasScrollBar.emit(elem.clientHeight < elem.scrollHeight);
  }
}


<textarea appText (hasScrollBar)="print($event)"></textarea>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Madeas
@Madeas
UI / UX Designer, Frontend Developer
Попробуйте так может

<textarea name="" id="text" cols="30" rows="10" style="height: 70px"></textarea>


const 
txt = document.getElementById("text"),
txts = txt.style.height,
pd = '70px';

console.log(pd);

if (txts !== pd) {
  txt.style.background = "black";
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы