Автопрокрутка

Привет,

Мы используем эту версию Discourse:

Я нахожусь в теме с 9 800 сообщениями. Я читаю предпоследнее сообщение, и каждый раз, когда кто-то отвечает, форум прыгает к самому последнему сообщению, пропуская несколько новых.

Это также происходит, если я оставляю браузер открытым и, например, иду на обед. Когда я возвращаюсь, тема уже открыта на последнем сообщении, и мне приходится прокручивать вверх, чтобы прочитать от 1 до 100 пропущенных ответов.

Я не понимаю, в чём тут польза. Это определённо новое поведение. Можно ли это отключить? Если нет, не могли бы вы добавить в настройки кнопку для отключения функции «автопрокрутка» или «живая прокрутка»? Это почти сводит с ума, а я предпочитаю сохранять свой гнев для действительно важных вещей.

3 лайка

Так быть не должно, как вы и отметили, это очень раздражает при чтении. Мне не удалось воспроизвести проблему в тестовой среде — возможно, дело в кастомной теме? Испытываете ли вы ту же проблему в безопасном режиме?

5 лайков

Я видел, как такое случается.

3 лайка

Он один из немногих пользователей, кто на самом деле не использует сильно модифицированную тему. У меня тоже так бывает, но моя тема — это лишь CSS-правки, сделанные мной самостоятельно.

2 лайка

Полностью исключать CSS нельзя: мы наблюдали случаи, когда правки CSS влияли на отслеживание прочтения или позиционирование прокрутки. Например, даже такой простой код может нарушить некоторые сценарии прокрутки:

html,
body {
  height: 100%;
  min-height: 100vh;
}

Настоятельно рекомендую протестировать сайт в безопасном режиме (который любой может временно включить). Если проблема сохраняется и в безопасном режиме, то это почти наверняка проблема самого Discourse, а не кастомизации.

5 лайков

Я могу подтвердить, что в безопасном режиме автоматическая прокрутка всё ещё происходит. Я знаю, что вам не удалось воспроизвести это в тестовой среде, но включает ли тестовая среду нижнюю панель? Я подозреваю, что если нижняя панель находится в поле зрения экрана, то тред будет автоматически прокручиваться после некоторых тестов.

Возможно, это ложный след, но если этот элемент не виден на странице, то проблема не возникает. Если я прокручиваю так, чтобы он полностью исчез из вида, но при этом я всё ещё вижу последний пост, проблема не проявляется. Если же он виден хотя бы частично, автоматическая прокрутка происходит.

3 лайка

Просто для проверки я попробовал:

// удалить нижнюю панель
.topic-map.--bottom {
    grid-area: posts;
    grid-row: 0;
    max-width: calc(var(--topic-avatar-width) + var(--topic-body-width) + var(--topic-body-width-padding)*2);
}

Это эффективно скрывает нижнюю карту тем, и для меня проблема исчезает.

3 лайка

Было обнаружено, что это просто сдвигает полосу вверх по теме в странном месте, поэтому я применил это к CSS темы:

.topic-map.--bottom {
    display: none !important;
    height: 0px;
}

Я не веб-разработчик, так что простите мою неосведомленность.

Кроме того, проблема всё ещё возникает, если я прокручен полностью вниз по теме, так что это не только этот конкретный элемент вызывает её.

3 лайка

Вы знаете, возникает ли проблема только в одной конкретной теме? Я понимаю, что это может быть трудно подтвердить, если на сайте нет других активных тем с аналогичным количеством сообщений.

Если возможно, откройте тему в браузере с включённым инструментом разработчика на вкладке «Консоль». Проверьте, не появляются ли какие-либо ошибки в консоли при прокрутке темы.

Консоль будет выглядеть примерно как на изображении ниже. В большинстве браузеров инструмент разработчика можно открыть, нажав клавишу F12 на клавиатуре или щёлкнув правой кнопкой мыши и выбрав в меню пункт «Просмотреть код» (Inspect). После открытия инструмента разработчика выберите вкладку «Консоль» из списка вкладок в верхней части страницы.

1 лайк

Кстати, это в безопасном режиме.

3 лайка

Я могу воспроизвести это без ошибок в консоли:

6 лайков

Это касается всех тем, независимо от их длины. Мы у нас разговорчивая компания :slight_smile:

4 лайка