scrollTo () и jquery scrollTop () не работают в Chrome - PullRequest
0 голосов
/ 07 апреля 2019

Я создаю платформер-головоломку, используя HTML-элементы в качестве препятствий. Некоторые уровни я хочу начать внизу документа. Поэтому я попытался использовать

$(document).ready(function() {
    $(document).scrollTop($(document).height() - $(window).height());
}

и

$(document).ready(function() {
    window.scrollTo(0, document.body.scrollHeight);
}

они оба прекрасно работают в Firefox, но не работают в Chrome. Я мог заставить его работать только при анимации прокрутки, что не сработает для того, что я пытаюсь сделать.

edit: я не использую jQuery.toScroll (), я пробовал ванильный toScroll и jQuery.scrollTop ()

Ответы [ 2 ]

2 голосов
/ 07 апреля 2019

Браузеры по-разному прикрепляют полосы прокрутки к странице.Используйте $ ('html, body'). ScrollTop ().Вы также должны использовать $ (window) .innerHeight ().Вот так ...

$('html,body').scrollTop($(document).height() - $(window).innerHeight());

//Or to smooth scroll it

$('html,body').animate({
  scrollTop: $(document).height() - $(window).innerHeight()
}, 1000);

Примечание: $ (document) .height () вернет то же значение, что и $ (window) .innerHeight (), если документ короче окна.

0 голосов
/ 07 апреля 2019

Я не выполнил полное тестирование, но у меня также возникают проблемы с инструментами разработчика, по крайней мере, для конкретной версии jQuery и последней версии Chrome. animate работает. scrollTop и scrollTo не работают. Тем не менее, даже если вы прямо сказали, что не хотите использовать animate, я все равно рекомендую его, так как он работает, и не вижу причин не использовать его, если вы используете его следующим образом:

$('html, body').animate({scrollTop: 500}, 0);

Это прокрутит до 500px и не будет иметь анимации вообще, потому что длительность установлена ​​на 0. Я также должен указать на предыдущую проблему с Chrome:

Возможен дубликат

Выпуск на Github

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

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