Мой веб-сайт получил форму, которая при вводе чего-либо добавляет ошибку над формой. Когда вы делаете это на рабочем столе с большим экраном, вы все равно можете видеть вход, даже если он был немного перемещен вниз. Однако, когда вы используете мобильный телефон, существует вероятность, что, когда будет много ошибок, и ввод будет выходить за пределы экрана.
Это проблема: https://angular -wwvhcw.stackblitz.io
Я попытался связать событие ввода, и когда событие ввода произойдет, я прокручиву документ до положения, в котором ввод будет фактически в той же позиции.
Это мой код (я использую Angular):
@Directive({
selector: '[appAnchorInput]'
})
export class AnchorInputDirective {
input: HTMLInputElement;
@HostListener('input') onInput() {
const position: DOMRect = this.el.nativeElement.getBoundingClientRect();
const pos = Math.abs(this.input.scrollTop - position.y); // can't figure equation to calculate proper scroll
this.viewportScroller.scrollToPosition([0, pos]);
}
constructor(private el: ElementRef, private viewportScroller: ViewportScroller) {
this.input = el.nativeElement;
}
}
Есть ли у вас какие-либо идеи, чтобы решить эту проблему? Может быть, у кого-то есть другой способ решить эту проблему (к сожалению, он не может удалить этот механизм).