Yii ListView分页:滚动到顶部

时间:2011-12-14 11:03:25

标签: javascript pagination scroll yii

我目前在一长串商品上使用zii.widgets.CBaseListView。该列表足够长,导致页面滚动。

当我使用列表底部的Yii寻呼机转到第2页时,浏览器窗口会保持滚动位置,而不是弹到下一个列表的顶部。

任何人都可以轻松解决此问题?我已经在这个项目的许多地方实现了这个。我已经完成了文档,我空洞了。

4 个答案:

答案 0 :(得分:6)

这是Alex Kliuchnikau的增强型解决方案。 我还在包含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);}'

));

?>

答案 1 :(得分:3)

设置'ajaxUpdate'=&gt; CListView属性中的false

答案 2 :(得分:2)

这就是我设法使用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);} 
)};

答案 3 :(得分:0)

对于所有具有动画且没有锚点的YiiPagers。滚动顶部:

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