Проблема: Прыгает в начало страницы при переходе по каталогу
13 ноября 2016 в 11:16
Доброго времени суток.
Создал каталог на drupal 7 + views, при каждом переходе по каталогу прыгает в самое начало страницы (вверх страницы), каждый раз приходится прокручивать страницу вниз. Где то когда то вроде видел, что есть какая то заплатка, укажите пожалуйста на нее, заранее благодарю.
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Поисковики молчат
AJAX включен во вьюхе? Можете кстати и сайт показать, чтоб было понятно о чем.
это нормальное поведение аякс пагинации
вы читать же начинаете сверху вниз? потому и пролистывание.
совершенно верно, переход ведет к якорю:<a id="main-content"></a>
Таки да, все намного интересней, в scrollTarget отнюдь не #main-content ))
неверно
задействуется вот эта функция
если уж совсем горит отключить,
* 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;
}
}
}
}
AJAX был выключен, включил, ничего не изменилось. Сайт пока в Интернетах не висит.
Пока не совсем понятно, что именно сделать, нашел данные функции, получается два вариант, в scrollTarget закоментить, либо доп функцию прописать, вместо YOURMODULE я так понимаю машинное имя модуля?
))
так а чего вы хотите? при открытии новой страницы, она всегда свехру открывается. только если вы якорь не поставите на все сылки.
Извиняюсь, "вместо YOURMODULE я так понимаю машинное имя модуля?", не модуля а вьюхи. Верно?
dgastudio, постарался доходчиво объяснить, чего я хочу, повторюсь, хочу что бы страница не открывалась сверху при переходе по каталогу.
А дополнительно, возможность вешать якори, к примеру, когда перехожу по ссылкам в футере.
еще раз
это стандартное поведение, открывать новую страницу, с самого верха.
если вам нужно открывать новую страницу (по ссылке из подвала например), в определенной точке, используйте якоря
https://www.drupal.org/project/void_menu
если у вас там пагинация, то придется альтерить pager, theme_pager
если аякс, альтерьте аякс комманды, как я в выше указал.
dgastudio, спасибо за развернутый ответ. Аякс во вьюхе включен, функции приведенные выше попробовал поправить, изменений не происходит. Видимо мой путь в сторону якорей, но не работал с ними не разу, буду разбираться. Получается к каждой категории и подкатегории нужно привязать якорь, предварительно надеюсь, что данный процесс можно автоматизировать.
Якорь можно на всех страницах одинаковый. Но я так и не понял, к какому месту вы его собираетесь привязать.
Я пока и сам этого не понимаю, потому как до этого момента не было необходимости в них.
Я имею в виду, к какому месту, по-вашему, каталог должен прокручиваться при переходе по страницам?
К месту начала каталога, подкаталога, содержимого подкаталога. А вообще структура следующая, Логотип и слоган, горизонтальное меню, слайдер, каталог, футер.
Вообще-то:
1. Не очень принято так делать
2. В большинстве шаблонов друпал есть невидимая ссылка "Перейти к основному содержанию", у неё айдишник #skip-link и ссылка на якорь #main-content, который по умолчанию также присутствует там, где вам нужно. Не верите? вот: Ахалэй махалэй
Думаю, тут достаточно информации к размышлению
1. Что не очень принято знаю, но не в этом дело. Дело в решении данного вопроса. Слайдер возможно буду убирать, но заинтересован в решении данного вопроса, интересно, да и будущем возможно пригодится, та же реализация одностраничных сайтов.
2. У меня шаблон взят стандартный, батрик, и уже все на него накатывается. Проверил через адресную строку оба варианта (taxonomy/term/2#skip-link и taxonomy/term/2#main-content), в обоих вариантах без изменений. Либо их нет, либо ведут в начало страницы.
Спасибо, Вы правы, информации к размышлению имеется, надеюсь поисковики помогут и с ее достаточностью.
просто открой дебагер и поставь останов там где scrollTarget принимает значение