2016-04-08 2 views
0

У меня есть страница просмотра с помощью кнопки в нижней части этого (Haml файл):скроллинга в определенное место после перезагрузки страницы

.scroll-here 
    = link_to "Button", example_path, id: "my-button" 

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

Заранее благодарен!

+0

Как можно дифференцировать два, когда страница загружается? – apokryfos

+0

Ну, только нажав кнопку «Моя кнопка» – Zelenka

+0

Так что нет способа узнать, была ли кнопка нажата на предыдущей странице при загрузке этой страницы? Нет строки запроса? Разные заголовки? Что-нибудь? – apokryfos

ответ

0

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

<div id="scrollHereIfButtonIsPressed"></div> 

Затем добавьте «#scrollHereIfButtonIsPressed» в URL на событии действия данной кнопки, так что она будет прокручивать к этому элементу, когда кнопка нажата для перехода к этому URL-адресу.

например:

<button onclick="window.location.href = window.location.href + '?r='+(+new Date())+'#scrollHereIfButtonIsPressed';window.location.reload(true);"> 
example button 
</button> 
+0

Есть уже класс '.scroll-here' – Zelenka

+0

yes, но ему нужен ID для якорной прокрутки для работы – KiiroSora09

+0

Как добавить id = "scrollHereIfButtonIsPressed" в "= link_to" Button ", example_path , id: "my-button" "? – Zelenka

0

не слишком хорошо знакомы с рубин-на-рельсы, но следующий может работать:

.scroll-here 
    = link_to "Button", example_path+"?reload=1", id: "my-button" 

Используйте следующий JQuery код

$(document).ready(function() { 
    if (window.location.href.indexOf("reload=1") >= 0) { 
      $('html, body').animate({ 
       scrollTop: $(".scroll-here").offset().top 
      }); 
    } 
}); 
+0

Я получил «Uncaught TypeError: window.location.indexOf не является функцией» – Zelenka

+0

Извините, забыли часть href @Zelenka – apokryfos

+0

Нет, все еще после перезагрузки фокус находится в верхней части страницы – Zelenka

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