Хобрук: Ваш путь к мастерству в программировании

scrollTop не работает в Chrome и не предлагает обходные пути

Множество других вопросов (здесь, здесь и здесь) указали, что scrollTop не работает в некоторых версиях Хром.

Существует также открытая проблема Chrome здесь.

Упоминаются некоторые обходные пути, но мне они не подходят, я использую Chrome 9.0.597.107 в Ubuntu.

Мне нужно иметь возможность читать scrollTop при первой загрузке документа и впоследствии устанавливать его (в верхнем элементе, т.е. body/html/document).

На данный момент в Chrome значение scrollTop всегда равно 0, и его установка не приводит к прокрутке документа.

Кто-нибудь нашел решение или обходной путь с использованием нативного JS или JQuery?

Важно отметить, что у меня нет контроля над исходным HTML, мой JS включается в него динамически, поэтому никакое решение не может включать изменение исходного HTML.


Ответы:


1

Может быть, вы можете использовать window.scroll(x,y);

09.03.2011
  • Это тоже не работает. Интересно то, что когда я вызываю прокрутку или scrollTop, запускается событие прокрутки (я могу его зарегистрировать), но Chrome на самом деле не выполняет прокрутку. 09.03.2011
  • Проблема может быть связана с вашим выбором css. Что вы пытаетесь прокручивать, зачем вам это нужно, можете ли вы сделать другой макет css, который будет выглядеть и работать так же, но не вызывать эту ошибку? это вопросы, которые я бы задал себе, если бы я был вами. Не играя с вашим кодом, я не могу ответить ни на один из них. 09.03.2011
  • Это не мои html-страницы - тогда JS вводится, как сторонняя библиотека. 09.03.2011
  • @Joel: если вы откроете консоль разработчика Chrome на этой странице (сделайте окно достаточно маленьким, чтобы у вас была полоса прокрутки) и запросите/установите document.body.scrollTop, вы увидите, что он работает нормально (по крайней мере, в моем Chrome 9 на win7 64bit), поэтому я предполагаю, что у вас есть страницы, на которых он не работает, есть какой-то CSS, который вызывает эту ошибку. Если вы никак не можете повлиять на css, возможно, вам просто не повезло. 09.03.2011
  • Вы правы, на этой странице это работает. Кроме того, я только что узнал, что это работает: $(window).scrollTop() 09.03.2011

  • 2

    Попробуйте:

    $("#ElemtToScroll").scrollTop($("#ElemtToScroll")[0].scrollHeight);
    
    07.03.2013
    Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

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