Скроллит страницу вверх при ajax пагинации pdoPage
Добрый день!
Ребята, столкнулся с такой проблемой — при выводе товаров miniShop2 через pdoPage с Ajax пагинацией, ajax пагинация работает, но страница скроллится на самый верх. Код вызова такой:
Ребята, столкнулся с такой проблемой — при выводе товаров miniShop2 через pdoPage с Ajax пагинацией, ajax пагинация работает, но страница скроллится на самый верх. Код вызова такой:
<div id="pdopage" class="list-layout products-area active">
<div class="rows">
<ul>
[[!pdoPage? &element=`msProducts`
&limit=`1` &ajaxMode=`default`
&tplPageWrapper=`@INLINE <div class="pagination"><ul>[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>`
&tplPageFirst=`@INLINE <li class="prev"><a href="[[+href]]">Первая</a></li>`
&tplPageLast=`@INLINE <li class="next"><a href="[[+href]]">Последняя</a></li>`
&tplPagePrev=`@INLINE <li><a href="[[+href]]"><i class="fa fa-long-arrow-left"></i></a></li>`
&tplPageNext=`@INLINE <li class="control"><a href="[[+href]]"><i class="fa fa-long-arrow-right"></i></a></li>`
&tplPageSkip=`@INLINE <li>...</li>`
&tplPageFirstEmpty=`@INLINE <li class="prev"><a>Первая</a></li>`
&tplPageLastEmpty=`@INLINE <li class="next"><a>Последняя</a></li>`
&tplPagePrevEmpty=`@INLINE <li><a><i class="fa fa-long-arrow-left"></i></a></li>`
&tplPageNextEmpty=`@INLINE <li><a><i class="fa fa-long-arrow-right"></i></a></li>`
]]
</ul>
</div>
[[!+page.nav]]
</div>Причем пробовал разные варианты и rows после - и т.д. ajax работает, но скроллит вверх страницы. Подскажите, в чем может быть проблема, в какой стороне копать?
Решение:Вызываем в шаблоне такой скрипт:
<script type="text/javascript">
pdoPage.callbacks['before'] = function(config) {$('html, body').stop().animate({scrollLeft: 0, scrollTop:$('#pdopage').offset().top}, 200);};
pdoPage.callbacks['after'] = function(config) {$('html, body').stop().animate({scrollLeft: 0, scrollTop:$('#pdopage').offset().top}, 200);};
</script>Я не знаю насколько это правильной код, но работает :)
#pdopage — это ID элемента, до которого нужно скроллить страницу
200 — скорость прокрутки
Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Обычным людям неудобно читать новую страницу снизу вверх, поэтому скрипт её прокручивает в начало элемента.
Чтобы убрать всё можно сделать просто вот так:
Вдруг какому-нибудь чайнику вроде меня это пригодится, делается это вот так:
Я не знаю насколько это правильной код, но работает :)
#pdopage — это ID элемента, до которого нужно скроллить страницу
200 — скорость прокрутки
&ajaxElemRows=`row blog-twocol` МЕНЯЙ НЕ МЕНЯЙ, НИ ЧЕГО НЕ ПРОИСХОДИТ
&ajaxElemRows=`row` попробуйте так, либо сделайте rows, как по умолчанию задано
Нигде в документации он не описан (есть лишь в javascript pdopage), но мне помог в такой ситуации.