Проблема: Прыгает в начало страницы при переходе по каталогу

13 ноября 2016 в 11:16
Аватар пользователя Saddas Saddas 0 17

Доброго времени суток.
Создал каталог на drupal 7 + views, при каждом переходе по каталогу прыгает в самое начало страницы (вверх страницы), каждый раз приходится прокручивать страницу вниз. Где то когда то вроде видел, что есть какая то заплатка, укажите пожалуйста на нее, заранее благодарю.

Комментарии

dgastudio wrote:

это нормальное поведение аякс пагинации

совершенно верно, переход ведет к якорю:
<a id="main-content"></a>

Таки да, все намного интересней, в scrollTarget отнюдь не #main-content ))

13 ноября 2016 в 16:45

неверно
задействуется вот эта функция
1

если уж совсем горит отключить,

/**
 * Implement hook_views_ajax_data_alter().
 */

function YOURMODULE_views_ajax_data_alter(&$commands, $view) {
  // Remove scroll to top behaviour from views ajax if using load_more pager.
  if ($view->display[$view->current_display]->display_options['pager']['type'] == 'load_more') {
    foreach ($commands as $key => $command) {
      if ($command['command'] == 'viewsScrollTop') {
        unset($commands[$key]);
        break;
      }
    }
  }
}
13 ноября 2016 в 16:23

AJAX был выключен, включил, ничего не изменилось. Сайт пока в Интернетах не висит.
Пока не совсем понятно, что именно сделать, нашел данные функции, получается два вариант, в scrollTarget закоментить, либо доп функцию прописать, вместо YOURMODULE я так понимаю машинное имя модуля?

14 ноября 2016 в 3:06

))
так а чего вы хотите? при открытии новой страницы, она всегда свехру открывается. только если вы якорь не поставите на все сылки.

14 ноября 2016 в 7:19

Извиняюсь, "вместо YOURMODULE я так понимаю машинное имя модуля?", не модуля а вьюхи. Верно?
dgastudio, постарался доходчиво объяснить, чего я хочу, повторюсь, хочу что бы страница не открывалась сверху при переходе по каталогу.
А дополнительно, возможность вешать якори, к примеру, когда перехожу по ссылкам в футере.

14 ноября 2016 в 9:03

еще раз
это стандартное поведение, открывать новую страницу, с самого верха.

если вам нужно открывать новую страницу (по ссылке из подвала например), в определенной точке, используйте якоря
https://www.drupal.org/project/void_menu

если у вас там пагинация, то придется альтерить pager, theme_pager

если аякс, альтерьте аякс комманды, как я в выше указал.

14 ноября 2016 в 9:06

dgastudio, спасибо за развернутый ответ. Аякс во вьюхе включен, функции приведенные выше попробовал поправить, изменений не происходит. Видимо мой путь в сторону якорей, но не работал с ними не разу, буду разбираться. Получается к каждой категории и подкатегории нужно привязать якорь, предварительно надеюсь, что данный процесс можно автоматизировать.

15 ноября 2016 в 4:29

Якорь можно на всех страницах одинаковый. Но я так и не понял, к какому месту вы его собираетесь привязать.

15 ноября 2016 в 8:01

К месту начала каталога, подкаталога, содержимого подкаталога. А вообще структура следующая, Логотип и слоган, горизонтальное меню, слайдер, каталог, футер.

15 ноября 2016 в 10:22

Вообще-то:
1. Не очень принято так делать
2. В большинстве шаблонов друпал есть невидимая ссылка "Перейти к основному содержанию", у неё айдишник #skip-link и ссылка на якорь #main-content, который по умолчанию также присутствует там, где вам нужно. Не верите? вот: Ахалэй махалэй

Думаю, тут достаточно информации к размышлению

15 ноября 2016 в 10:38

1. Что не очень принято знаю, но не в этом дело. Дело в решении данного вопроса. Слайдер возможно буду убирать, но заинтересован в решении данного вопроса, интересно, да и будущем возможно пригодится, та же реализация одностраничных сайтов.
2. У меня шаблон взят стандартный, батрик, и уже все на него накатывается. Проверил через адресную строку оба варианта (taxonomy/term/2#skip-link и taxonomy/term/2#main-content), в обоих вариантах без изменений. Либо их нет, либо ведут в начало страницы.

Спасибо, Вы правы, информации к размышлению имеется, надеюсь поисковики помогут и с ее достаточностью.

15 ноября 2016 в 11:14