2013-12-16 4 views
1

Я использую turbolinks для рельсов; всякий раз, когда я нажимаю ссылку, страница прокручивается до положения прокрутки предыдущей страницы. Я хочу, чтобы все мои страницы загружались так, чтобы он не прокручивался вниз (находится в верхней части страницы). Мне не нужны турболинки, чтобы помнить предыдущую позицию прокрутки. Итак, как заставить страницы загружаться с помощью положения прокрутки вверху (0,0)?Рельсы: Turbolinks К началу страницы

Я попытался

$ -> 
    window.scrollTo 0,0 

Но я, вероятно, не имеет обязательной силы это право.

ответ

0

Причина заключается в том, что Turbolink заменил элемент DOM без обновления страницы, чтобы ваша прокрутка оставалась в том же положении.

Чтобы изменить, вам необходимо посмотреть событие, выпущенное Turbolinks, указав, что загрузка страницы завершена, а затем запустите действие прокрутки.

Попробуйте это:

$ -> 
    $(document).on 'page:load', -> 
    window.scrollTo 0, 0 
+1

Это не сработало - поведение остается неизменным. – Tsubaki

+0

@ user2805279: Вам следует предоставить дополнительную информацию. Где ваш скрипт называется? У вас есть ВСЕ эти драгоценные камни в вашем gemfile ?: 'gem 'jquery-rails'' ' gem' turbolinks'' 'gem 'jquery-turbolinks'' – AWM

1

Вы можете использовать старую версию turbolinks. Эта проблема была fixed.

Попробуйте обновить Gemfile, чтобы использовать более новую версию. У меня была такая же проблема с использованием «1.1.1», но она была решена после перехода на «2.2.3».

Смежные вопросы