задать смещение с помощью scrollIntoView

#javascript #angular #typescript #ionic3

#javascript #угловой #typescript #ionic3

Вопрос:

Я использую scrollIntoView() для перехода к выбранному входу. Но я установил для него значение top, поэтому я хотел бы указать смещение для этого метода.

Но, похоже, это не работает, я также проверил метод scrollTo и сделал это следующим образом:

 this.keyboard.onKeyboardShow().subscribe(() => {
    console.log('document.activeElement!!!!', document.activeElement)
    // document.activeElement.scrollIntoView(true);
    const top = document.activeElement.getBoundingClientRect().top   window.scrollY;
    console.log(top);
    window.scroll(0, top)
    window.scrollTo({
       top: top,
       behavior: 'smooth'
    });
    // document.activeElement.scrollTo(0, 10);
    window.scrollBy(-100, 0);
});
  

Но это больше не приведет к прокрутке до этого элемента. Может ли кто-нибудь помочь мне установить смещение на scrollIntoView()

Комментарии:

1. Я в замешательстве, что именно вы пытаетесь сделать. Вы хотите прокручивать над элементом или под ним?

2. @ChrisSandvik перейдите к document.activeElement со смещением выше. document.activeElement.scrollIntoView(true); это работает, но с помощью этого метода я не могу дать никакого смещения.

3. Есть ли вообще прокрутка, когда вы используете window.scrollTo ? потому что используемое вами смещение, вероятно, должно быть отрицательным

4. Нет, вообще не прокручивается, и console.log (вверху) регистрирует меня 436.5238037109375 Я также пробовал this.content с viewchild (содержимое)

5. может быть, попробуйте установить left: 0 в настройках для scrollTo