scrollTop всегда возвращает 0 в сафари - PullRequest
0 голосов
/ 12 июня 2018

приведенный ниже код прекрасно работает в Chrome, но не работает в Safari (для настольных ПК и мобильных устройств)

const messageBody = document.querySelector(`.chatContainer`);
messageBody.scrollTop = messageBody.scrollHeight;

messageBody - это div с overflow-y: scroll

Каждый раз, когдаэлемент добавляется в div, он прокручивается вниз.Есть идеи, как заставить его работать в сафари?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я обнаружил проблему, это была проблема в моем коде реакции.Каждый раз, когда я добавлял новый элемент в мой массив, все мои компоненты перерисовывались.Это потому, что я перезаписал существующий идентификатор, который я им дал.Код, который работал в Chrome, не работал в Safari, потому что Safari выполнил код до того, как были выполнены все компоненты.

0 голосов
/ 12 июня 2018
ScrollPosition.prototype.restore = function () {
    if (this.readyFor === 'up') {
        this.node.scrollTop = this.node.scrollHeight -        
        this.previousScrollHeightMinusTop;
    }
}
this.previousScrollHeightMinusTop = this.node.scrollHeight-this.node.scrollTop;

ссылка- http://kirbysayshi.com/2013/08/19/maintaining-scroll-position-knockoutjs-list.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...