Yii ListView Pagination: прокрутить вверх - PullRequest
2 голосов
/ 14 декабря 2011

В настоящее время я использую zii.widgets.CBaseListView в длинном списке предметов. Список достаточно длинный, чтобы прокручивать страницу.

Когда я использую пейджер Yii в нижней части списка, чтобы перейти на страницу 2, окно браузера сохраняет положение прокрутки, а не отскакивает к вершине следующего списка.

У кого-нибудь есть простое решение этой проблемы? Я реализовал это в нескольких местах этого проекта. Я пролистал документацию и выхожу пустой.

Ответы [ 4 ]

6 голосов
/ 10 октября 2012

Вот расширенное решение Алекса Ключникова. Я также создал привязку прямо перед включением виджета ClistView, а затем в настройках CListView я использовал свойство ' afterAjaxUpdate '.

<a id="scrollTop"></a>
<?php 

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'afterAjaxUpdate' => 'function(){
$("html, body").animate({scrollTop: $("#scrollTop").position().top }, 100);}'

));

?>
3 голосов
/ 14 декабря 2011

Установить 'ajaxUpdate' => false в свойстве CListView.

2 голосов
/ 24 января 2012

Вот так мне удалось прокрутить вверх, используя JQuery.

Я создал опорную точку в верхней части страницы с помощью id=scrollTopPosition.

Страница будет прокручиваться вверх при щелчке пользователя (фактически, при наведении мыши) на пейджер (с идентификатором 'yw1', проверка с помощью Firebug)

$('#yw1 > li').live('mouseup',function() { //mouseup to avoid conflict with request

   topoflist=$('#scrollTopPosition').position();
   thetop=topoflist.top-250;    
   $('html, body').animate({scrollTop:thetop}, 0);} 
)};
0 голосов
/ 18 апреля 2013

Для всех YiiPager с анимацией и без привязки.Просто прокрутите вверх:

$('.yiiPager > li > a').live('mouseup', function () {
    $('html, body').animate({ scrollTop: 0 }, 150);
});
...